VB.net 2010 视频教程 VB.net 2010 视频教程 python基础视频教程
SQL Server 2008 视频教程 c#入门经典教程 Visual Basic从门到精通视频教程
当前位置:
首页 > 编程开发 > python爬虫 >
  • Python爬虫连载17-ItemPipeLine、中间件

一、ItemPipeLine

1.爬虫提取出的数据存入item之后,item中保存的数据需要进一步处理,比如:清洗,去重,存储等

2.pipeline需要process_item函数

(1)process_item​:spider提出来的item作为参数出入,同时传入的还有spider;此方法是必须要实现的​;必须返回一个item对象,被丢弃的item不会被之后的pipeline处理

(2)__init__:构造函数

进行一些必要的参数初始化

(3)open_spider(spider)

spider对象被开启的时候调用

(4)close_spider(spider)

spider对象被关闭的时候调用

3.Spider

(1)对应的是文件夹spiders下的文件

(2)__init__:初始化爬虫的名称,start_urls列表

(3)start_requests:生成Requests对象嫁给Scrapy下载并返回response

(4)parse:根据返回的response解析出相应的item,item自动进入到pip​eline;如果需要,解析出url,url自动交给requests模块,一直循环下去

(5)start_request​:此方法仅能被调用一次,读取start_urls内容并启动循环过程

(6)​name:设置爬虫的名字

(7)start_urls:设置开始第一批爬取的url

(8)allow_​domains:spider允许爬取的域名列表

(9)start_request(self):只被调用一次

(10)parse

(11)log:日志记录

二、中间件

1.定义:中间件是处于引擎和下载器中间的一层组件

2.作用:对发出的请求和返回的结果进行预处理

3.​数量:可以有很多个,被按顺序加载执行

4​.位置:在middlewares文件中,需要在settings中设置以便生效

5.编写十分简单

6.必须实现以下一个或者多个方法

(1)process_request(self,request,spider)

在request通过的时候​被调用;必须返回None或者Request或Response或raise IgnoreRequest;

None:scrapy将继续处理该request

Request:scrapy将停止调用process_request并冲洗调度返回的request

Response:scrapy将不会调用其他的process_request或者process_exception,直接将该response作为结果同时会调用process_response函数

(2)process_response(self,request,response,spider)

跟process_request大同小异;每次返回结果的时候会自动调用;可以有多个,​按顺序调用。

三、源码

2.CSDN:https://blog.csdn.net/weixin_44630050

出  处:https://www.cnblogs.com/ruigege0000/p/12571702.html


相关教程