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
  • asp之家 网络编程 m.aspxhome.com