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


Posted in Python onNovember 30, 2020

前期的入库筛选工作已经由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下载器应该能识别重复的链接,已经爬取过的链接就不需要放进仓库了

到此这篇关于python爬虫中的url下载器用法详解的文章就介绍到这了,更多相关python爬虫中的url下载器是什么内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python 字符串中的字符倒转
Sep 06 Python
用Python的Django框架完成视频处理任务的教程
Apr 02 Python
python自带的http模块详解
Nov 06 Python
Python复制Word内容并使用格式设字体与大小实例代码
Jan 22 Python
基于python中theano库的线性回归
Aug 31 Python
python pandas库的安装和创建
Jan 10 Python
浅谈pandas筛选出表中满足另一个表所有条件的数据方法
Feb 08 Python
Python3.4学习笔记之列表、数组操作示例
Mar 01 Python
python如何保存文本文件
Jun 07 Python
浅谈pytorch中torch.max和F.softmax函数的维度解释
Jun 28 Python
Python Django路径配置实现过程解析
Nov 05 Python
Pytorch如何切换 cpu和gpu的使用详解
Mar 01 Python
Python接口自动化测试框架运行原理及流程
Nov 30 #Python
Django数据模型中on_delete使用详解
Nov 30 #Python
Django数据统计功能count()的使用
Nov 30 #Python
Python常用断言函数实例汇总
Nov 30 #Python
在pycharm中使用pipenv创建虚拟环境和安装django的详细教程
Nov 30 #Python
Django 用户认证Auth组件的使用
Nov 30 #Python
python tqdm库的使用
Nov 30 #Python
You might like
图象函数中的中文显示
2006/10/09 PHP
用Php实现链结人气统计
2006/10/09 PHP
生成php程序的php代码
2008/04/07 PHP
PHP+MYSQL 出现乱码的解决方法
2008/08/08 PHP
php学习之变量的使用
2011/05/29 PHP
PHP保存Base64图片base64_decode的问题整理
2019/11/04 PHP
php的RSA加密解密算法原理与用法分析
2020/01/23 PHP
JavaScript 图像动画的小demo
2012/05/23 Javascript
js截取固定长度的中英文字符的简单实例
2013/11/22 Javascript
判断日期是否能跨月查询的js代码
2014/07/25 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
jquery显示隐藏元素的实现代码
2016/05/19 Javascript
angular5 httpclient的示例实战
2018/03/12 Javascript
Vue 第三方字体图标引入 Font Awesome的方法
2018/09/28 Javascript
vue学习笔记之给组件绑定原生事件操作示例
2020/02/27 Javascript
Vue实现菜单切换功能
2020/11/08 Javascript
python 爬虫一键爬取 淘宝天猫宝贝页面主图颜色图和详情图的教程
2018/05/22 Python
python 筛选数据集中列中value长度大于20的数据集方法
2018/06/14 Python
Python3.7实现中控考勤机自动连接
2018/08/28 Python
PyQt5通信机制 信号与槽详解
2019/08/07 Python
python运用sklearn实现KNN分类算法
2019/10/16 Python
细数nn.BCELoss与nn.CrossEntropyLoss的区别
2020/02/29 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
高清屏中使用Canvas绘图出现模糊的问题及解决方法
2019/06/03 HTML / CSS
美国一家主营日韩美妆护肤品的在线商店:iMomoko
2016/09/11 全球购物
Bibloo荷兰:女士、男士和儿童的服装、鞋子和配饰
2019/02/25 全球购物
局部内部类是否可以访问非final变量?
2013/04/20 面试题
写好自荐信的要点
2013/11/06 职场文书
数据员岗位职责
2013/11/19 职场文书
跟单文员岗位职责
2014/01/03 职场文书
秸秆管理实施方案
2014/03/15 职场文书
2014教师评职称工作总结
2014/11/10 职场文书
幼儿园门卫安全责任书
2015/05/08 职场文书
素质教育学习心得体会
2016/01/19 职场文书
苹果可能正在打击不进行更新的 App
2022/04/24 数码科技