scrapy採集資料時為每個請求隨機分配user-agent

鴨脖發表於2014-03-19

通過這個方法可以每次請求更換不同的user-agent,防止網站根據user-agent遮蔽scrapy的蜘蛛

首先將下面的程式碼新增到settings.py檔案,替換預設的user-agent處理模組

DOWNLOADER_MIDDLEWARES = {
    '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)
  
#該程式碼片段來自於: http://www.sharejs.com/codes/python/8394


相關文章