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,下载器
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
运行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
![](https://img.aspxhome.com/file/2023/3/87483_0s.jpg)
Python中常用的8种字符串操作方法
2023-05-28 09:44:38
![](https://img.aspxhome.com/file/2023/6/87886_0s.jpg)
分享PyCharm最新激活码(真永久激活方法)不用每月找安装参数或最新激活码了
2022-05-04 15:35:38
![](https://img.aspxhome.com/file/2023/7/89227_0s.png)
python实现股票历史数据可视化分析案例
2021-12-20 00:29:10
![](https://img.aspxhome.com/file/2023/1/82631_0s.png)
Python读取配置文件-ConfigParser的二次封装方法
2023-06-15 09:19:58
![](https://img.aspxhome.com/file/2023/1/59651_0s.png)
Python中sub()的用法说明
2023-08-04 14:29:32
![](https://img.aspxhome.com/file/2023/9/75359_0s.jpg)
Python编程实现简易的音乐播放器基本操作
2022-05-25 08:41:16
![](https://img.aspxhome.com/file/2023/5/80685_0s.jpg)
详解Python中@staticmethod和@classmethod区别及使用示例代码
2023-06-03 12:17:20
![](https://img.aspxhome.com/file/2023/5/70235_0s.png)
用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
![](https://img.aspxhome.com/file/2023/3/87753_0s.jpg)
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
![](https://img.aspxhome.com/file/2023/1/99251_0s.png)