前言
UA,即USER_AGENT,是在Request中的header(请求头)部分包含的一个键值对,常用于标志浏览器名称及版本。
Q:为什么设置随机UA?
A:
- 有的网站采用了UA黑/白名单机制,不适用合规的UA会导致无法正确地爬取到正常访问的网页。
- 使用随机请求头,能更好地伪装浏览器,防止被Ban。
Q:如何在每次请求时,更换不同的USER_AGENT?
A:在Scrapy启用DOWNLOADER_MIDDLEWARES
DOWNLOADER_MIDDLEWARES 中文文档
DOWNLOADER_MIDDLEWARES 英文文档
于是,操作步骤如下:
- 创建中间件
- 配置启用中间件
1.创建中间件
scrapy框架在创建项目的时候,已经默认创建了一个middlewares.py文件,我们在文件的末端添加以下代码,便可创建一个属于我们自己的中间件组件。
import random
class RandomUserAgent(object):
def __init__(self):
self.user_agent_list = [
'Opera/8.0 (Windows NT 5.1; U; en)',
'Mozilla/5.0 (Windows NT 5.1; U; en; rv:1.8.1) Gecko/20061208 Firefox/2.0.0 Opera 9.50',
'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; en) Opera 9.50'