scrapy 设置随机UA
生活随笔
收集整理的這篇文章主要介紹了
scrapy 设置随机UA
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
爬蟲過程中的反爬措施非常重要,其中設置隨機 User-Agent 是一項重要的反爬措施,Scrapy 中設置隨機 UA 的方式有很多種,有的復雜有的簡單。
1.常規設置 UA
首先,說一下常規情況不使用 Scrapy 時的用法,比較方便的方法是利用 fake_useragent包,這個包內置大量的 UA 可以隨機替換,這比自己去搜集羅列要方便很多,下面來看一下如何操作。
首先,安裝好fake_useragent包,一行代碼搞定:
pip install fake-useragent然后,就可以測試了:
from fake_useragent import UserAgentua = UserAgent()for i in range(10):print(ua.random)2.middlewares.py 中設置 UA(推薦使用,質量高)
這種方法是在 settings.py 文件中手動添加一些 UA,然后通過 random.choise 方法隨機調用,即可生成 UA,這種方便比較麻煩的就是需要自己去找 UA,而且增加了代碼行數量。
代碼如下:
from scrapy.downloadermiddlewares.useragent import UserAgentMiddleware import randomclass RandomUserAgentMiddleware(UserAgentMiddleware):"""自動隨機更換UA"""def __init__(self, user_agent_list):super(RandomUserAgentMiddleware, self).__init__()self.user_agent_list = user_agent_list@classmethoddef from_crawler(cls, crawler):return cls(user_agent_list=crawler.settings.get('USER_AGENT'))def process_request(self, request, spider):random_user_agent = random.choice(self.user_agent_list)request.headers.setdefault('User-Agent', random_user_agent)然后,我們回到 settings.py 文件中調用自定義的 UserAgent,注意這里要先關閉默認的 UA 設置方法才行。
DOWNLOADER_MIDDLEWARES = {'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None,'pachong.middlewares.common_download_middlewares.RandomUserAgentMiddleware': 450,# 'pachong.middlewares.common_download_middlewares.ProxyMiddleware': 700 }總結
以上是生活随笔為你收集整理的scrapy 设置随机UA的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy中的get_project_
- 下一篇: Charles+安卓模拟器 抓取http