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
投稿
猜你喜欢
Django Form 实时从数据库中获取数据的操作方法
2024-01-23 14:35:54
Python SQLAlchemy入门教程(基本用法)
2022-10-05 04:08:55
使用Python进行QQ批量登录的实例代码
2021-07-14 16:58:04
一个ASPJPEG组件的asp类 CLASS
2008-03-11 12:22:00
python实现学生成绩测评系统
2023-08-09 19:40:56
网页版面布局的方法及技巧
2007-10-29 12:41:00
Python函数式编程指南(四):生成器详解
2023-08-23 05:50:02
教学演示-UBB,剪贴板,textRange及其他
2008-01-27 13:46:00
python在地图上画比例的实例详解
2023-06-22 20:54:00
Python+tkinter使用80行代码实现一个计算器实例
2023-10-11 23:29:31
Python保姆式手把手带你掌握异常的捕获和处理
2022-04-30 14:10:18
asp如何验证字符串是否包含有效字符?
2009-11-08 19:02:00
MySQL 事务概念与用法深入详解
2024-01-14 02:56:06
python获取文件真实链接的方法,针对于302返回码
2023-11-23 04:31:03
python实现随机梯度下降(SGD)
2021-04-15 19:41:20
新Orcas语言特性-查询句法
2010-07-16 12:58:00
javascript实现简易计算器
2024-05-02 16:29:30
如何使用ADO.NET连接数据库?
2010-06-03 10:52:00
jQuery判断checkbox选中状态
2024-04-22 22:33:18
R语言绘制条形图及分布密度图代码总结
2023-12-19 13:27:56