爬虫利器 Scrapy 初体验(1)

澳门十大网赌网址:2018-12-27 澳门十大正规网站: 9224 次
  前言
  为什么要学 scrapy 呢?看下图中的招聘要求,就清楚了。很多招聘要求都有 scrapy,主要是因为 scrapy 确实很强。那到底强在哪里呢?请在文中找答案。
  scrapy 数据流
  首先大家先来学习一下 scrapy 的工作流程。
  1、爬虫引擎获得初始请求开始抓取。 
  2、爬虫引擎开始请求调度程序,并准备对下一次的请求进行抓取。 
  3、爬虫调度器返回下一个请求给爬虫引擎。 
  4、引擎请求发送到下载器,通过下载中间件下载网络数据。 
  5、一旦下载器完成页面下载,将下载结果返回给爬虫引擎。 
  6、引擎将下载器的响应通过中间件返回给爬虫进行处理。 
  7、爬虫处理响应,并通过中间件返回处理后的items,以及新的请求给引擎。 
  8、引擎发送处理后的 items 到项目管道,然后把处理结果返回给调度器,调度器计划处理下一个请求抓取。 
  9、重复该过程(继续步骤1),直到爬取完所有的 url 请求。
  scrapy 组件
  爬虫引擎
  爬虫引擎负责控制各个组件之间的数据流,当某些操作触发事件后都是通过 engine来处理。
  调度器
  调度接收来 engine 的请求并将请求放入队列中,并通过事件返回给 engine。
  下载器
  通过engine请求下载网络数据并将结果响应给engine。
  Spider
  Spider 发出请求,并处理 engine 返回给它下载器响应数据,以 items 和规则内的数据请求(urls)返回给 engine。
  item pipeline
  负责处理 engine 返回 spider 解析后的数据,并且将数据持久化,例如将数据存入数据库或者文件。
  download middleware
  下载中间件是engine和下载器交互组件,以钩子(插件)的形式存在,可以代替接收请求、处理数据的下载以及将结果响应给engine。
  spider middleware
  spider中间件是engine和spider之间的交互组件,以钩子(插件)的形式存在,可以代替处理response以及返回给engine items及新的请求集。
  爬取豆瓣影片 Top250
  安装
  初始化爬虫
  目录架构如下,其中 douban_spider.py 为手动创建。
  启动爬虫
  spider
  以下代码为 douban_spider.py ,里面都有相应的注释,以方便理解
  pipelines
  每当 spider 分析完 HTML 之后,变会返回 item,传递给 item pipelines。上面代码中:
  便是返回的数据。
  一般 pipelines 常用于:
  检查是否有某些字段
  将数据存进数据库
  数据查重
  由于只是初步尝试一下 scrapy 爬虫,所以这里我没有进行修改
  items
  定义大家需要获取的字段
  setting
  settings.py 定义大家爬虫的各种配置,由于这里是初步了解 scrapy 故相应的先容会在后面。
  启动爬虫
这里没有进行详细的解析,只是展示大概数据
  后记
  关于豆瓣影片的小爬虫就下完了,后面会深入解析一下 scrapy 的高级用法。
 
  转自: Python开发者
分享到:
×

微信扫一扫分享

XML 地图 | Sitemap 地图