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 列表(List)操作方法详解
Mar 11 Python
Python的Django框架安装全攻略
Jul 15 Python
Python元组操作实例分析【创建、赋值、更新、删除等】
Jul 24 Python
Python实现生成随机日期字符串的方法示例
Dec 25 Python
[原创]Python入门教程1. 基本运算【四则运算、变量、math模块等】
Oct 28 Python
Python从数据库读取大量数据批量写入文件的方法
Dec 10 Python
Win10+GPU版Pytorch1.1安装的安装步骤
Sep 27 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
Feb 07 Python
使用keras根据层名称来初始化网络
May 21 Python
如何用 Python 处理不平衡数据集
Jan 04 Python
python使用tkinter实现透明窗体上绘制随机出现的小球(实例代码)
May 17 Python
Python代码实现双链表
May 25 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
各种咖啡的英文名子是什么
2021/03/03 新手入门
php连接mysql数据库代码
2009/03/10 PHP
PHP代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
PHP使用PDO调用mssql存储过程的方法示例
2017/10/07 PHP
一个对于js this关键字的问题
2007/01/09 Javascript
Javascript this指针
2009/07/30 Javascript
javascript下string.format函数补充
2010/08/24 Javascript
js中for in的用法示例解析
2013/12/25 Javascript
js同源策略详解
2015/05/21 Javascript
jQuery 全选 全部选 反选 实现代码
2016/08/17 Javascript
jquery 属性选择器(匹配具有指定属性的元素)
2016/09/06 Javascript
jQuery操作json常用方法示例
2017/01/04 Javascript
详谈vue+webpack解决css引用图片打包后找不到资源文件的问题
2018/03/06 Javascript
微信小程序地图导航功能实现完整源代码附效果图(推荐)
2019/04/28 Javascript
JS数组方法reduce的用法实例分析
2020/03/03 Javascript
Vue自定义多选组件使用详解
2020/09/08 Javascript
手写Vue源码之数据劫持示例详解
2021/01/04 Vue.js
在Python中用keys()方法返回字典键的教程
2015/05/21 Python
Python实现注册登录系统
2017/08/08 Python
Python+matplotlib实现计算两个信号的交叉谱密度实例
2018/01/08 Python
Python OpenCV处理图像之图像像素点操作
2018/07/10 Python
对python中数组的del,remove,pop区别详解
2018/11/07 Python
如何用python写一个简单的词法分析器
2018/12/18 Python
Python基础之列表常见操作经典实例详解
2020/02/26 Python
matplotlib基础绘图命令之errorbar的使用
2020/08/13 Python
Python远程linux执行命令实现
2020/11/11 Python
Python 远程开关机的方法
2020/11/18 Python
为奢侈时尚带来了慈善元素:Olivela
2018/09/29 全球购物
美国杰西潘尼官网:JCPenney
2019/06/12 全球购物
锐步香港官方网上商店:Reebok香港
2020/11/05 全球购物
香奈儿美国官网:CHANEL美国
2020/05/20 全球购物
公安四风对照检查材料思想汇报
2014/10/11 职场文书
会计试用期自我评价
2015/03/10 职场文书
低端且暴利的线上线下创业项目分享
2019/09/03 职场文书
与Windows10相比Windows11有哪些改进?值不值得升级?
2021/11/21 数码科技