1.

中间件:下载中间件
- 下载中间件的作用:批量拦截整个工程中发起的所有请求和响应
- 拦截请求:
- UA伪装:
- 代理ip:
- 拦截响应:

 

4567电影

 

小爬爬6:中间件_chrome

 

小爬爬6:中间件_html_02

 

 

小爬爬6:中间件_safari_03

 修改下面的配置

小爬爬6:中间件_safari_04

上边是设置的三个部分配置

注意要注释掉,上边的默认君子协定

USER_AGENT = 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36'
ROBOTSTXT_OBEY = False
LOG_LEVEL='ERROR'

 爬虫中中间件的爬取

小爬爬6:中间件_html_05

下面我们看一下中间件文件中的内容.

小爬爬6:中间件_chrome_06

我们只需要保留中间件中的三个process方法即可.

 

这个类是批量拦击所有的请求和响应

 

小爬爬6:中间件_chrome_07

一些功能:

中间件:下载中间件
- 下载中间件的作用:批量拦截整个工程中发起的所有请求和响应
- 拦截请求:
- UA伪装:
- 代理ip:
- 拦截响应:

上边的配置文件settings.py其实不写ua也行,在中间件middle中修改也行

下面写一个user_agent_list



user_agent_list = [
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 "
"(KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1",
"Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 "
"(KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 "
"(KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 "
"(KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 "
"(KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 "
"(KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 "
"(KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",
"Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 "
"(KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",
"Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 "
"(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",
"Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 "
"(KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"
]

View Code

小爬爬6:中间件_html_08

下面进行代理IP的设置

代理IP池

PROXY_http = [
'153.180.102.104:80',
'195.208.131.189:56055',
]
PROXY_https = [
'120.83.49.90:9000',
'95.189.112.214:35508',
]

 

小爬爬6:中间件_safari_09

 

 

小爬爬6:中间件_html_10

 

 

小爬爬6:中间件_html_11

注意:现在不说的不代表不重要,但是可以先不考虑使用,有机会在学习

 

小爬爬6:中间件_safari_12

我们再配置文件中写上边的两个属性,UA已经在中间件中写了

小爬爬6:中间件_chrome_13

这个时候,我们执行一下爬虫文件:

小爬爬6:中间件_chrome_14

没有打印请求中间件,代表没有执行这个函数

我们需要在settings.py中开启下载中间件:

小爬爬6:中间件_safari_15

 

这个时候,我们的中间件执行了

我们可以将部分可以用的代理IP用

 

拦截响应什么时间做?为什么这么做?之后怎么做?

小爬爬6:中间件_html_16

自己写一个响应对象.new实例化一个新的,这个比较麻烦

 目的:不符合需求的对其进行修改.