scrapy防禁止 设置user-agent的方法

来源:互联网 发布:永利国际中心 商业数据 编辑:程序博客网 时间:2024/06/04 19:32



User Agent轮换例子

1)新建一个middlewares.py文件,内容如下,文件放在与items.py, settings.py所在的文件夹下。

[html] view plain copy
  1. #!/usr/bin/python  
  2. #-*-coding:utf-8-*-  
  3.   
  4. import random  
  5. from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware  
  6.   
  7. class RotateUserAgentMiddleware(UserAgentMiddleware):  
  8.     def __init__(self, user_agent=''):  
  9.         self.user_agent = user_agent  
  10.   
  11.     def process_request(self, request, spider):  
  12.         ua = random.choice(self.user_agent_list)  
  13.         if ua:  
  14.             print ua, '-----------------yyyyyyyyyyyyyyyyyyyyyyyyy'  
  15.             request.headers.setdefault('User-Agent', ua)  
  16.   
  17.     #the default user_agent_list composes chrome,I E,firefox,Mozilla,opera,netscape  
  18.     #for more user agent strings,you can find it in http://www.useragentstring.com/pages/useragentstring.php  
  19.     user_agent_list = [\  
  20.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/22.0.1207.1 Safari/537.1"\  
  21.         "Mozilla/5.0 (X11; CrOS i686 2268.111.0) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.57 Safari/536.11",\  
  22.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1092.0 Safari/536.6",\  
  23.         "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.6 (KHTML, like Gecko) Chrome/20.0.1090.0 Safari/536.6",\  
  24.         "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/19.77.34.5 Safari/537.1",\  
  25.         "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.9 Safari/536.5",\  
  26.         "Mozilla/5.0 (Windows NT 6.0) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.36 Safari/536.5",\  
  27.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\  
  28.         "Mozilla/5.0 (Windows NT 5.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\  
  29.         "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_8_0) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1063.0 Safari/536.3",\  
  30.         "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\  
  31.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1062.0 Safari/536.3",\  
  32.         "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\  
  33.         "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\  
  34.         "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.1 Safari/536.3",\  
  35.         "Mozilla/5.0 (Windows NT 6.2) AppleWebKit/536.3 (KHTML, like Gecko) Chrome/19.0.1061.0 Safari/536.3",\  
  36.         "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24",\  
  37.         "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/535.24 (KHTML, like Gecko) Chrome/19.0.1055.1 Safari/535.24"  
  38.        ]  
2) 然后在settings.py中按如下设置

[html] view plain copy
  1. DOWNLOADER_MIDDLEWARES = {  
  2.     'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware':None,  
  3.     'aa.middlewares.RotateUserAgentMiddleware':400,  
  4. }  

原创粉丝点击