内射老阿姨1区2区3区4区_久久精品人人做人人爽电影蜜月_久久国产精品亚洲77777_99精品又大又爽又粗少妇毛片

怎么用代碼搞定Scrapy隨機(jī)User-Agent

今天就跟大家聊聊有關(guān)怎么用代碼搞定Scrapy隨機(jī) User-Agent,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供網(wǎng)站制作、成都網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計(jì),響應(yīng)式網(wǎng)站建設(shè),網(wǎng)頁設(shè)計(jì)師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:028-86922220

摘要:爬蟲過程中的反爬措施非常重要,其中設(shè)置隨機(jī) User-Agent 是一項(xiàng)重要的反爬措施,Scrapy 中設(shè)置隨機(jī) UA 的方式有很多種,有的復(fù)雜有的簡單,本文就對(duì)這些方法進(jìn)行匯總,提供一種只需要一行代碼的設(shè)置方式。

最近使用 Scrapy 爬一個(gè)網(wǎng)站,遇到了網(wǎng)站反爬的情況,于是開始搜索一些反爬措施,了解到設(shè)置隨機(jī) UA 來偽裝請(qǐng)求頭是一種常用的方式,這能夠做到一定程度上避免網(wǎng)站直接識(shí)別出你是一個(gè)爬蟲從而封掉你。設(shè)置隨機(jī) UA 的方法有挺多種,有的需要好多行代碼,有的卻只需要一行代碼就搞定了,接下來就來介紹下。

▌常規(guī)設(shè)置 UA

首先,說一下常規(guī)情況不使用 Scrapy 時(shí)的用法,比較方便的方法是利用 fake_useragent包,這個(gè)包內(nèi)置大量的 UA 可以隨機(jī)替換,這比自己去搜集羅列要方便很多,下面來看一下如何操作。

首先,安裝好fake_useragent包,一行代碼搞定:

1pip install fake-useragent

然后,就可以測試了:

1from fake_useragent import UserAgent
2ua = UserAgent()
3for i in range(10):
4    print(ua.random)

這里,使用了 ua.random 方法,可以隨機(jī)生成各種瀏覽器的 UA,見下圖:

怎么用代碼搞定Scrapy隨機(jī) User-Agent

(放大查看)

如果只想要某一個(gè)瀏覽器的,比如 Chrome ,那可以改成 ua.chrome,再次生成隨機(jī) UA 查看一下:

怎么用代碼搞定Scrapy隨機(jī) User-Agent

以上就是常規(guī)設(shè)置隨機(jī) UA 的一種方法,非常方便。

下面,我們來介紹在 Scrapy 中設(shè)置隨機(jī) UA 的幾種方法。

先新建一個(gè) Project,命名為 wanojia,測試的網(wǎng)站選擇為:http://httpbin.org/get。

首先,我們來看一下,如果不添加 UA 會(huì)得到什么結(jié)果,可以看到顯示了scrapy,這樣就暴露了我們的爬蟲,很容易被封。

怎么用代碼搞定Scrapy隨機(jī) User-Agent

下面,我們添加上 UA 。

▌直接設(shè)置 UA

怎么用代碼搞定Scrapy隨機(jī) User-Agent

第一種方法是和上面程序一樣,直接在主程序中設(shè)置 UA,然后運(yùn)行程序,通過下面這句命令可以輸出該網(wǎng)站的 UA,見上圖箭頭處所示,每次請(qǐng)求都會(huì)隨機(jī)生成 UA,這種方法比較簡單,但是每個(gè) requests 下的請(qǐng)求都需要設(shè)置,不是很方便,既然使用了 Scrapy,它提供了專門設(shè)置 UA 的地方,所以接下來我們看一下如何單獨(dú)設(shè)置 UA。

1response.request.headers['User-Agent']

▌手動(dòng)添加 UA

怎么用代碼搞定Scrapy隨機(jī) User-Agent

第二種方法,是在 settings.py 文件中手動(dòng)添加一些 UA,然后通過 random.choise 方法隨機(jī)調(diào)用,即可生成 UA,這種方便比較麻煩的就是需要自己去找 UA,而且增加了代碼行數(shù)量。

▌middlewares.py 中設(shè)置 UA

第三種方法,是使用 fake-useragent 包,在 middlewares.py 中間件中改寫 process_request() 方法,添加以下幾行代碼即可。

1from fake_useragent import UserAgent
2class RandomUserAgent(object):
3    def process_request(self, request, spider):
4        ua = UserAgent()
5        request.headers['User-Agent'] = ua.random

然后,我們回到 settings.py 文件中調(diào)用自定義的 UserAgent,注意這里要先關(guān)閉默認(rèn)的 UA 設(shè)置方法才行。

1DOWNLOADER_MIDDLEWARES = {
2    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None, 
3    'wandoujia.middlewares.RandomUserAgent': 543,
4}

可以看到,我們成功得到了隨機(jī) UA。

怎么用代碼搞定Scrapy隨機(jī) User-Agent

▌一行代碼設(shè)置 UA

可以看到,上面幾種方法其實(shí)都不太方便,代碼量也比較多,有沒有更簡單的設(shè)置方法呢?

有的,只需要一行代碼就搞定,利用一款名為  scrapy-fake-useragent 的包。

先貼一下該包的官方網(wǎng)址:https://pypi.org/project/scrapy-fake-useragent/,使用方法非常簡單,安裝好然后使用就行了。

執(zhí)行下面的命令進(jìn)行安裝,然后在 settings.py 中啟用隨機(jī) UA 設(shè)置命令就可以了,非常簡單省事。

1pip install scrapy-fake-useragent
1DOWNLOADER_MIDDLEWARES = {
2    'scrapy.downloadermiddlewares.useragent.UserAgentMiddleware': None, # 關(guān)閉默認(rèn)方法
3    'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400, # 開啟
4}

我們輸出一下 UA 和網(wǎng)頁 Response,可以看到成功輸出了結(jié)果。

怎么用代碼搞定Scrapy隨機(jī) User-Agent

以上就是 Scrapy 中設(shè)置隨機(jī) UA 的幾種方法,推薦最后一種方法,即安裝 scrapy-fake-useragent 庫,然后在 settings 中添加下面這一行代碼即可:

1'scrapy_fake_useragent.middleware.RandomUserAgentMiddleware': 400,

另外,反爬措施除了設(shè)置隨機(jī) UA 以外,還有一種非常重要的措施是設(shè)置隨機(jī) IP。

看完上述內(nèi)容,你們對(duì)怎么用代碼搞定Scrapy隨機(jī) User-Agent有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

當(dāng)前文章:怎么用代碼搞定Scrapy隨機(jī)User-Agent
網(wǎng)頁網(wǎng)址:http://m.rwnh.cn/article32/jcjcsc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)頁設(shè)計(jì)公司、網(wǎng)站營銷、品牌網(wǎng)站建設(shè)、全網(wǎng)營銷推廣、微信小程序、網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司
芦溪县| 六安市| 肇庆市| 竹北市| 营口市| 南召县| 漾濞| 泰兴市| 东丽区| 鹰潭市| 莎车县| 思南县| 莲花县| 永修县| 东平县| 渭南市| 边坝县| 虹口区| 奈曼旗| 申扎县| 永年县| 玉溪市| 增城市| 柞水县| 宜城市| 灌云县| 长沙县| 沿河| 康保县| 沙河市| 克拉玛依市| 攀枝花市| 富源县| 辽源市| 兴隆县| 永城市| 佛冈县| 林州市| 长治市| 南开区| 阿图什市|