尝试使用
直到刚才还在百度随机请求头复制粘贴的我。。。发现了这个好东西。。。参考了一下别人的文章,正好用在自己的小东西里
下载地址及详细使用方法 https://github.com/hellysmile/fake-useragent
scrapy中设置
在middlewares.py中设置如下代码(看不懂就直接复制粘贴即可,类的名字可以自定义)
from fake_useragent import UserAgent //导包
class RandomUserAgentDownloadMiddlware(object):
'''随机更换user-agent,基本上都是固定格式和scrapy源码中useragent.py中UserAgentMiddleware类中一致'''
def __init__(self,crawler):
super(RandomUserAgentDownloadMiddlware,self).__init__()
self.ua = UserAgent()
#从配置文件settings中读取RANDOM_UA_TYPE值,默认为random,可以在settings中自定义
self.ua_type = crawler.settings.get("RANDOM_UA_TYPE","random")
@classmethod
def from_crawler(cls,crawler):
return cls(crawler)
def process_request(self,request,spider):#必须和内置的一致,这里必须这样写
def get_ua():
return getattr(self.ua,self.ua_type)
request.headers.setdefault('User-Agent',get_ua())
在settings.py中设置上面那个类作为下载器中间件(以前的就不用了)
同时要设置一下随机请求头的类型
这样就设置完成了