Python学习日记 Scrapy框架 4.防反爬虫----fake_useragent
在第一次使用scrapy shell xxx 响应页面时候,出现404时,需要伪装成浏览器进行访问。
同样,在爬虫中,也有为了防止某些反爬虫机制,我们也需要采取fake Useragent进行访问。Useragent是识别浏览器的一组字符串,就如何人的身份证一样。使用乃至频繁更换Useragent可以帮助我们更好的绕过某些反爬虫措施。fake-useragent是一个开源项目,通过使用fake-useragent可以帮助我们更方便达到频繁更换Useragent的目的
1. fake-useragent安装
在命令行中输入pip install fake-useragent即可完成安装。
pip list检查fake-useragent是否已经成功安装在列表里。
2. scrapy中使用fake-useragent
方法一:.
在spider同级目录下建立一个MidWare文件价里面写一个user_agent_middlewares.py文件内容为
# -*- coding: utf-8 -*-
from fake_useragent import UserAgent
class RandomUserAgentMiddlware(object):
#随机跟换user-agent
def __init__(self,crawler):
super(RandomUserAgentMiddlware,self).__init__()
self.ua = UserAgent()
self.ua_type = crawler.settings.get('RANDOM_UA_TYPE','random')#从setting文件中读取RANDOM_UA_TYPE值
@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)
# user_agent_random=get_ua()
request.headers.setdefault('User_Agent',get_ua())
pass
在setting.py中添加
DOWNLOADER_MIDDLEWARES = {
'new3.MidWare.user_agent_middlewares.RandomUserAgentMiddlware': 543,
'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,
}
方法二:
即安装 scrapy-fake-useragent库,然后在 settings 中添加下面这一行代码即可:
scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400