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实现国外赌场热门游戏Craps(双骰子)
Mar 31 Python
使用Python编写提取日志中的中文的脚本的方法
Apr 30 Python
python实现画圆功能
Jan 25 Python
Flask入门之上传文件到服务器的方法示例
Jul 18 Python
使用 Python 实现简单的 switch/case 语句的方法
Sep 17 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
python3射线法判断点是否在多边形内
Jun 28 Python
Python通用唯一标识符uuid模块使用案例
Sep 10 Python
用sleep间隔进行python反爬虫的实例讲解
Nov 30 Python
python math模块的基本使用教程
Jan 16 Python
Python数据分析之绘图和可视化详解
Jun 02 Python
LeetCode189轮转数组python示例
Aug 05 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
PHP 解决utf-8和gb2312编码转换问题
2010/03/18 PHP
Javascript与PHP验证用户输入URL地址是否正确
2014/10/09 PHP
PHP 用session与gd库实现简单验证码生成与验证的类方法
2016/11/15 PHP
Prototype Array对象 学习
2009/07/19 Javascript
jQuery事件绑定.on()简要概述及应用
2013/02/07 Javascript
页面右下角弹出提示框示例代码js版
2013/08/02 Javascript
js 剪切板应用clipboardData详细解析
2013/12/17 Javascript
JavaScript的removeChild()函数用法详解
2015/12/27 Javascript
jquery淡入淡出效果简单实例
2016/01/14 Javascript
JavaScript 网页中实现一个计算当年还剩多少时间的倒数计时程序
2017/01/25 Javascript
react-native fetch的具体使用方法
2017/11/01 Javascript
angular1配合gulp和bower的使用教程
2018/01/19 Javascript
在vue中使用Autoprefixed的方法
2018/07/27 Javascript
jQuery实现文本显示一段时间后隐藏的方法分析
2019/06/20 jQuery
Vue项目中如何使用Axios封装http请求详解
2019/10/23 Javascript
vue cli4下环境变量和模式示例详解
2020/04/09 Javascript
JS中队列和双端队列实现及应用详解
2020/09/29 Javascript
vue+iview分页组件的封装
2020/11/17 Vue.js
讲解Python中fileno()方法的使用
2015/05/24 Python
python开发之字符串string操作方法实例详解
2015/11/12 Python
Python中的上下文管理器相关知识详解
2019/09/19 Python
Python线程协作threading.Condition实现过程解析
2020/03/12 Python
利用CSS3实现开门效果实例源码
2016/08/22 HTML / CSS
html5仿支付宝密码框的实现代码
2017/09/06 HTML / CSS
美国家喻户晓的保健品品牌:Vitamin World(维他命世界)
2016/08/19 全球购物
FILA斐乐中国官方商城:意大利运动品牌
2017/01/25 全球购物
Giglio美国站:意大利奢侈品购物网
2018/02/10 全球购物
美国购买舞会礼服网站:Couture Candy
2019/12/29 全球购物
篮球比赛拉拉队口号
2014/06/10 职场文书
电子信息工程专业自荐书
2014/06/24 职场文书
干部职工纪律作风整改措施思想汇报
2014/10/11 职场文书
诚实守信主题班会
2015/08/13 职场文书
Python3 如何开启自带http服务
2021/05/18 Python
Python趣味挑战之给幼儿园弟弟生成1000道算术题
2021/05/28 Python
Java中多线程下载图片并压缩能提高效率吗
2021/07/01 Java/Android
详解Oracle数据库中自带的所有表结构(sql代码)
2021/11/20 Oracle