中间件:
下载中间件:
使用下载中间件时,要记得开启下载中间件,在配置文件中:DOWNLOADER_MIDDLEWARES。操作文件位置在中间件中的下载中间件类中。
- 位置:引擎和下载器之间
- 作用:批量拦截到整个工程中所有的请求和响应
- 拦截请求:
(1)请求头信息中有UA信息,进行UA伪装:
封装一个UA列表,在拦截请求后随机进行选取UA信息。
(2)代理IP设定:
代理操作一般写在拦截异常中。同样先封装好代理池,分为http,https两种。设定判断条件,然后进行随机选择,最后将修改好的请求进行返回。 - 拦截响应:重在获取动态加载的数据。
(1)篡改响应数据,响应对象
(2)需求:爬取网易新闻中的新闻数据(标题和内容)
a.通过网易新闻的首页解析出五大板块对应的详情页的URL(没有动态加载)
b.每一个板块对应的新闻标题都是动态加载出来的(动态加载)
首先导入响应对象:
from scrapy.http import HtmlResponse
c.通过解析每一条新闻详情页的URL获取详情页的页面源码,解析出新闻内容
- 需要结合selenium使用进行爬取