scerpy中设置使用user-agent池

目录

      • 什么是UA
      • 为什么要使用UA池
      • 如何构建UA池
        • 1.
        • 2.
        • 3.
        • 4.

什么是UA

UA:User-Agent(请求载体的身份标识)

UA检查:门户网站的服务器会检测对应请求的载体身份标识,如果检测到请求的载体身份标识为某一款浏览器,
说明该请求是一个正常的请求,相反,如果监测到的请求的身份标识不是一个浏览器,则该次请求不正常,服务器端可能会拒绝该次请求。

设置User-Agent,是一种简单的反反爬方式。

为什么要使用UA池

因为有一些网站ua反爬比较严重,所以在这时候要求我们使用不同的ua身份标识进行请求,于是就要使用到ua池。

如何构建UA池

1.

本文注意讲的是在scrapy构建UA池。首先,我们知道user-agent是跟随request请求,发送给服务器的。同时,
我们知道对应scrapy有一个中间组件Downloader Middleware,在该组件中可以对于user-agent,进行修改设置。

2.

在scrapy设置settings中我们发现自带USER_AGENT,通过它我们可以设置ua标识,于是我们可以在此创建一个列表USER_AGENT_LIST,用于存放不同的user-agent。
scerpy中设置使用user-agent池_第1张图片

3.

那么问题来了,如何获取不同的user-agent呢,我是直接从该网址获取到
http://useragentstring.com/pages/useragentstring.php?name=Chrome
scerpy中设置使用user-agent池_第2张图片

4.

将网页中的user-agent放入到我们的USER_AGENT_LIST列表当中之后,我们可以通过中间件中的process_request方法,调用USER_AGENT_LIST列表中的user-agent,方法如下
scerpy中设置使用user-agent池_第3张图片

记得导入USER_AGENT_LIST列表。

from UA.settings import USER_AGENT_LIST
from random import choice

至此,我们在scrapy中使用UA池就成功了。

你可能感兴趣的:(前端)