天天看点

Scrapy中添加随机UserAgent本文直接讲两种方法添加随机UserAgent,具体Scrapy不在阐述

本文直接讲两种方法添加随机UserAgent,具体Scrapy不在阐述

首先如下图的框架,我们需要清楚User-Agent的伪装是在发送请求的Headers中,DOWNLOADER_MIDDLEWARES就是桥梁,发送请求之前的位置可以进行处理request请求,也就是在这里进行userAgent的添加!

Scrapy中添加随机UserAgent本文直接讲两种方法添加随机UserAgent,具体Scrapy不在阐述

需要在middlewares.py中添加以下类和方法,具体结构如代码所示:

1、定义RandomUserAgentMiddleware(object) 注:类名随意需要和settings.py中的一致

2、写一个process_request方法:

不论哪种方法都需要在settings.py中打开 DOWNLOADER_MIDDLEWARES:

Scrapy中添加随机UserAgent本文直接讲两种方法添加随机UserAgent,具体Scrapy不在阐述

方法一:

需要在settings.py中添加一个USER_AGENT_LIST的列表,如下图:

注:列表的UserAgent,截图我只保留了3个请忽略!

Scrapy中添加随机UserAgent本文直接讲两种方法添加随机UserAgent,具体Scrapy不在阐述
class RandomUserAgentMiddleware(object):
   	 	# 第一种方法在Setting中手动添加Headers列别,随机选择
    	def process_request(self, request, spider):
       		request.headers["User-Agent"] = random.choice(spider.settings.get("USER_AGENT_LIST"))
           

方法二:

只需要导入fake_useragent这个useragent库

from fake_useragent import UserAgent
class RandomUserAgentMiddleware(object):
    # 第二种方法导入fake_useragent这个useragent库可以用random函数随机选择Headers
    def process_request(self, request, spider):
        request.headers["User-Agent"] = UserAgent().random
           

到底有没有效果打印Headers中的User-Agent,打印语句放在爬虫里面执行就可以了

下图是我的爬虫执行后的结果随机产生User-Agent

Scrapy中添加随机UserAgent本文直接讲两种方法添加随机UserAgent,具体Scrapy不在阐述

总结一下,新手上路学习爬虫,博文完全由自己手工撰写,旨在记录学习,框架结构图系网络图片,如有雷同请见谅,本文仅做个人学习交流,欢迎大家指正,谢谢!

继续阅读