Python使用scrapy采集数据时为每个请求随机分配user-agent的方法
更新时间:2015年04月08日 10:59:13 作者:pythoner
这篇文章主要介绍了Python使用scrapy采集数据时为每个请求随机分配user-agent的方法,涉及Python使用scrapy采集数据的技巧,非常具有实用价值,需要的朋友可以参考下
本文实例讲述了Python使用scrapy采集数据时为每个请求随机分配user-agent的方法。分享给大家供大家参考。具体分析如下:
通过这个方法可以每次请求更换不同的user-agent,防止网站根据user-agent屏蔽scrapy的蜘蛛
首先将下面的代码添加到settings.py文件,替换默认的user-agent处理模块
复制代码 代码如下:
DOWNLOADER_MIDDLEWARES = {
'scraper.random_user_agent.RandomUserAgentMiddleware': 400,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
}
'scraper.random_user_agent.RandomUserAgentMiddleware': 400,
'scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware': None,
}
自定义useragent处理模块
复制代码 代码如下:
from scraper.settings import USER_AGENT_LIST
import random
from scrapy import log
class RandomUserAgentMiddleware(object):
def process_request(self, request, spider):
ua = random.choice(USER_AGENT_LIST)
if ua:
request.headers.setdefault('User-Agent', ua)
#log.msg('>>>> UA %s'%request.headers)
import random
from scrapy import log
class RandomUserAgentMiddleware(object):
def process_request(self, request, spider):
ua = random.choice(USER_AGENT_LIST)
if ua:
request.headers.setdefault('User-Agent', ua)
#log.msg('>>>> UA %s'%request.headers)
希望本文所述对大家的Python程序设计有所帮助。
相关文章
Python中不同进制互相转换(二进制、八进制、十进制和十六进制)
这篇文章主要介绍了Python中不同进制互相转换,本文讲解了二进制、八进制、十进制和十六进制的相与转换实现代码,需要的朋友可以参考下2015-04-04pandas combine_first函数处理两个数据集重叠和缺失
combine_first是pandas中的一个函数,它可以将两个DataFrame对象按照索引进行合并,用一个对象中的非空值填充另一个对象中的空值,这个函数非常适合处理两个数据集有部分重叠和缺失的情况,可以实现数据的补全和更新,本文介绍combine_first函数的语法及一些案例应用2024-01-01用Anaconda安装本地python包的方法及路径问题(图文)
这篇文章主要介绍了用Anaconda安装本地python包的方法及路径问题,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧2019-07-07基于Python的图像数据增强Data Augmentation解析
这篇文章主要介绍了基于Python的图像数据增强Data Augmentation解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下2019-08-08
最新评论