python爬虫中的url下载器用法详解

作者:小妮浅浅 时间:2022-06-28 01:09:21 

前期的入库筛选工作已经由url管理器完成了,整理的工作自然要由url下载器接手。当我们需要爬取的数据已经去重后,下载器的主要任务的是这些数据下载下来。所以它的使用也并不复杂,不过需要借助到我们之前所学过的一个库进行操作,相信之前的基础大家都学的很牢固。下面小编就来为大家介绍url下载器及其使用的方法。

下载器的作用就是接受URL管理器传递给它的一个url,然后把该网页的内容下载下来。python自带有urllib和urllib2等库(这两个库在python3中合并为urllib),它们的作用就是获取指定的网页内容。不过,在这里我们要使用一个更加简洁好用而且功能更加强大的模块:Requests。

Requests并非python自带模块,需要安装。关于其具体使用方法请查看以往文章,在此不多做介绍。

下载器接受一个url作为参数,返回值为下载到的网页内容(格式为str)。下面就是一个简单的下载器,其中只有一个简单的函数download():


'''
-----------------------------------------------------------------
HtmlDownloader
'''
class HtmlDownloader(object):
 def download(self, url):
   print "start download"
   if url is None:
     return None
     print "url is None"
   user_agent = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.108 Safari/537.36'
   headers = {'User-Agent':user_agent}
   print "start requests"
   r = requests.get(url, headers=headers)
   #判断响应状态
   if r.status_code == 200:
     r.encoding = 'utf-8'
     print "该页面下载成功!{}".format(url)
     return r.text
   else:
     print "该页面下载失败!{}".format(url)
   return None

在requests请求中设置User-Agent的目的是伪装成浏览器,这是一只优秀的爬虫应该有的觉悟。

有些小伙伴已经猜出来了,requests库和我们的爬取数据密不可分,搭配着url下载器我们就可以成功抓取想要的数据了

知识点扩展:

url下载器

  • URL下载器应该包含两个仓库,分别存放没有爬取过的链接和已经爬取过的链接。

  • 应该有一些函数负责往上述两个仓库里添加链接

  • 应该有一个函数负责从新url仓库中随机取出一条链接以便下载器爬取

  • URL下载器应该能识别重复的链接,已经爬取过的链接就不需要放进仓库了

来源:https://www.py.cn/jishu/jichu/21399.html

标签:python爬虫,url,下载器
0
投稿

猜你喜欢

  • 运行asp.net时出现 http错误404-文件或目录未找到

    2023-07-24 01:53:36
  • sql exist的妙用

    2007-11-08 11:47:00
  • 2007淘宝UED招聘题解(前端开发部分)

    2007-11-24 10:32:00
  • Python 实现图片色彩转换案例

    2021-01-12 21:35:56
  • Python中常用的8种字符串操作方法

    2023-05-28 09:44:38
  • 分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了

    2022-05-04 15:35:38
  • python实现股票历史数据可视化分析案例

    2021-12-20 00:29:10
  • Python读取配置文件-ConfigParser的二次封装方法

    2023-06-15 09:19:58
  • Python中sub()的用法说明

    2023-08-04 14:29:32
  • Python编程实现简易的音乐播放器基本操作

    2022-05-25 08:41:16
  • 详解Python中@staticmethod和@classmethod区别及使用示例代码

    2023-06-03 12:17:20
  • 用python下载百度文库的代码

    2023-07-31 00:40:44
  • 在Python 字典中一键对应多个值的实例

    2023-07-25 23:45:02
  • 用于打印的页面设计

    2009-07-06 12:47:00
  • pygame游戏之旅 按钮上添加文字的方法

    2022-09-28 23:41:39
  • python小程序之4名牌手洗牌发牌问题解析

    2023-08-28 04:06:20
  • Python AES加密模块用法分析

    2021-05-29 05:13:58
  • IE window对象介绍

    2008-05-21 18:47:00
  • asp阻止中国ip访问访问

    2011-09-13 12:55:37
  • Python3+Selenium+Chrome实现自动填写WPS表单

    2023-12-08 05:47:59
  • asp之家 网络编程 m.aspxhome.com