日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

scrapy 设置随机UA

發布時間:2024/4/11 编程问答 33 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。