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数据类型详解(三)元祖:tuple
May 08 Python
详解Python在七牛云平台的应用(一)
Dec 05 Python
python 实现调用子文件下的模块方法
Dec 07 Python
python3实现多线程聊天室
Dec 12 Python
Python的条件表达式和lambda表达式实例
Jan 31 Python
OpenCV-Python 摄像头实时检测人脸代码实例
Apr 30 Python
对python tkinter窗口弹出置顶的方法详解
Jun 14 Python
简单了解python的内存管理机制
Jul 08 Python
python打开使用的方法
Sep 30 Python
Python TCP通信客户端服务端代码实例
Nov 21 Python
用python打开摄像头并把图像传回qq邮箱(Pyinstaller打包)
May 17 Python
python suds访问webservice服务实现
Jun 26 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
这部好评如潮的动漫 知名梗频出 但是画风劝退很多人
2020/03/08 日漫
用PHP将数据导入到Foxmail的实现代码
2010/09/05 PHP
解析二进制流接口应用实例 pack、unpack、ord 函数使用方法
2013/06/18 PHP
调试PHP程序的多种方法介绍
2014/11/06 PHP
PHP类相关知识点实例总结
2016/09/28 PHP
php对象工厂类完整示例
2018/08/09 PHP
JS实现浏览器菜单命令
2006/09/05 Javascript
详解new function(){}和function(){}() 区别分析
2008/03/22 Javascript
javascript 解析后的xml对象的读取方法细解
2009/07/25 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
JavaScript中Function详解
2015/02/27 Javascript
Nodejs的express使用教程
2015/11/23 NodeJs
利用JS实现数字增长
2016/07/28 Javascript
Vue.js实现一个自定义分页组件vue-paginaiton
2016/09/05 Javascript
微信小程序 删除项目工程实现步骤
2016/11/10 Javascript
javascript history对象详解
2017/02/09 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
微信小程序之自定义组件的实现代码(附源码)
2018/08/02 Javascript
js屏蔽退格键(backspace或者叫后退键与F5)
2019/02/10 Javascript
ES6 class的应用实例分析
2019/06/27 Javascript
[02:57]DOTA2亚洲邀请赛 SECRET战队出场宣传片
2015/02/07 DOTA
python学习之面向对象【入门初级篇】
2017/01/21 Python
Python基础之函数的定义与使用示例
2019/03/23 Python
购买瑞典当代设计的腕表和太阳眼镜:TRIWA
2016/10/30 全球购物
来自圣地亚哥的实惠太阳镜:Knockaround
2018/08/27 全球购物
酒店秘书求职信范文
2014/02/17 职场文书
ktv筹备计划书
2014/05/03 职场文书
文艺晚会策划方案
2014/06/11 职场文书
银行反四风对照检查材料
2014/09/29 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
表扬通报怎么写
2015/01/16 职场文书
毕业生就业推荐表自我评价
2015/03/02 职场文书
2015年学校减负工作总结
2015/05/19 职场文书
客户答谢会致辞
2015/07/30 职场文书
护士心得体会范文
2016/01/25 职场文书
坚持不是死撑,更重要的是心态
2019/08/19 职场文书