亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SCRAPY框架的網(wǎng)絡(luò)爬蟲封鎖技術(shù)破解研究

        2020-04-27 08:45:40陳輝
        科技視界 2020年6期
        關(guān)鍵詞:爬蟲封鎖間隔

        陳輝

        摘 要

        本文闡述了網(wǎng)絡(luò)爬蟲及封鎖網(wǎng)絡(luò)爬蟲最常用的四種技術(shù):時間間隔封鎖,Cookie封鎖,User-Agent封鎖,IP封鎖;分析了上述封鎖技術(shù)的基本原理,提出了針對上述封鎖技術(shù)的破解方法,并給出了基于Scrapy框架的破解封鎖實現(xiàn)代碼。

        關(guān)鍵詞

        Scrapy;網(wǎng)絡(luò)爬蟲;時間間隔封鎖;Cookie封鎖;User-Agent封鎖;IP封鎖

        中圖分類號: TP393.092;TP391.3 ? ? ?文獻(xiàn)標(biāo)識碼: A

        DOI:10.19694/j.cnki.issn2095-2457 . 2020 . 06 . 82

        0 引言

        網(wǎng)絡(luò)爬蟲,即網(wǎng)絡(luò)機(jī)器人,是按照一定的規(guī)則,自動抓取互聯(lián)網(wǎng)信息的程序。在各種應(yīng)用場景中,通過應(yīng)用網(wǎng)絡(luò)爬蟲技術(shù),網(wǎng)絡(luò)機(jī)器人可以在網(wǎng)站上自動獲取相關(guān)的專業(yè)數(shù)據(jù),從而實現(xiàn)快速、準(zhǔn)確、完整地獲取海量數(shù)據(jù),為正確做出各種決策提供數(shù)據(jù)支持。有關(guān)調(diào)查研究證明,網(wǎng)絡(luò)上60%的訪問量都來自網(wǎng)絡(luò)爬蟲[1]。對于網(wǎng)站方,網(wǎng)絡(luò)爬蟲占用其過多的資源,并且其未能從爬蟲的訪問中受益,因此網(wǎng)站方采取多種技術(shù)措施拒絕網(wǎng)絡(luò)爬蟲的訪問,即封鎖網(wǎng)絡(luò)爬蟲。

        當(dāng)前,封鎖網(wǎng)絡(luò)爬蟲的技術(shù)主要有[2]:時間間隔封鎖,Cookie封鎖,User-Agent封鎖,IP封鎖等。時間間隔封鎖:通過兩次網(wǎng)頁請求的時間間隔判斷訪問是否由網(wǎng)絡(luò)爬蟲引發(fā),當(dāng)時間間隔<0.1秒時,可判斷為網(wǎng)絡(luò)爬蟲,從而拒絕其訪問;Cookie封鎖:網(wǎng)站可通過Cookie來確定用戶身份,當(dāng)一連續(xù)網(wǎng)頁請求來自同一Cookie時,此時可判斷訪問由網(wǎng)絡(luò)爬蟲引發(fā),從而拒絕其訪問;User-Agent封鎖:User-Agent是瀏覽器的身份標(biāo)識,通過User-Agent可確定瀏覽器的類型,網(wǎng)站可將頻繁提交請求的User-Agent作為爬蟲標(biāo)志,將其列入黑名單;IP封鎖:同一IP短時間連續(xù)訪問同一站點,如訪問數(shù)量過大可以判斷由網(wǎng)絡(luò)爬蟲引發(fā),從而拒絕其訪問。以上為封鎖網(wǎng)絡(luò)爬蟲最常用的4種技術(shù),破解上述封鎖技術(shù)是本文主要解決的問題。本文以網(wǎng)絡(luò)爬蟲Scrapy框架為基礎(chǔ),給出以上4種封鎖技術(shù)的破解方法及實現(xiàn)代碼。

        1 破解時間間隔封鎖

        網(wǎng)站通過兩次網(wǎng)頁請求的時間間隔判斷訪問是否由網(wǎng)絡(luò)爬蟲引發(fā),當(dāng)時間間隔<0.1秒時,可判斷為網(wǎng)絡(luò)爬蟲,從而拒絕其訪問;因此,可將兩次請求的時間間隔放大,從而模擬人訪問網(wǎng)頁的速度,達(dá)到破解時間間隔的限制。

        在Scrapy框架中,兩次網(wǎng)頁請求的時間間隔配置為DOWNLOAD_DELAY。因此放大時間間隔的實現(xiàn)代碼為,在settings.py中加入代碼。

        DOWN_DOWNLOAD = 5

        2 破解Cookie封鎖

        網(wǎng)站可通過Cookie來確定用戶身份,當(dāng)在同一連續(xù)時間段中,多個請求由同一Cookie的用戶發(fā)起,則可判斷為網(wǎng)絡(luò)爬蟲,從而拒絕其訪問;因此,可將Cookie禁用,從而網(wǎng)站方無法判斷是否為同一用戶,以達(dá)到破解Cookie封鎖。

        在Scrapy框架中,啟用禁用Cookie的配置為COOKIES_ENABLED。因此放大時間間隔的實現(xiàn)代碼為,在settings.py中加入代碼。

        COOKIE_ENABLED = False

        3 破解User-Agent封鎖

        網(wǎng)站可通過User-Agent來確定瀏覽器的類型,當(dāng)在同一連續(xù)時間段中,多個請求由同一User-Agent的瀏覽器發(fā)起,則可判斷為網(wǎng)絡(luò)爬蟲,從而拒絕其訪問;因此,網(wǎng)絡(luò)爬蟲可以準(zhǔn)備多個User-Agent,發(fā)出請求時隨機(jī)選一個User-Agent使用,以達(dá)到破解User-Agent封鎖。

        在Scrapy框架中,為了實現(xiàn)破解User-Agent封鎖,需要在settings.py的同級目錄創(chuàng)建middlewares模塊;在模塊中,創(chuàng)建資源文件resource.py和中間件文件customUserAgent.py。resource.py用于存放多個User-Agent;customUserAgent.py用于隨機(jī)調(diào)用不同的User-Agent。

        資源文件resource.py,將多個瀏覽器的User-Agent放在列表中,具體實現(xiàn)如下。

        UserAgents=[ “Mozilla/4.0 ?(compatible; MSIE 6.0; Windows NT 5.1; SV1; Acoo Browser; .NET CLR 1.1.4322; .NET CLR 2.0.50727)”,

        “Mozilla/4.0 ?(compatible; MSIE 7.0; Windows NT 6.0; Acoo Browser; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0)”,

        “Mozilla/4.0 ?(compatible; MSIE 7.0; AOL9.5; AOL Build 4337.35; ?Windows NT 5.1; .NET CLR 1.1.4322)”,

        “Mozilla/5.0 ?(Windows; U; ?MSIE 9.0; ?Windows NT 9.0; ?en-US)”,

        “Mozilla/5.0 ?(compatible; MSIE 9.0; Windows NT 6.0; ?Trident/4.0; ?SLCC1; .NET CLR 2.0.50727; Media Center PC 6.0)”,

        ..........

        “Opera/9.80 ?(Macintosh; Intel Mac OS X 10.6.8; U; fr) Presto/2.9.168 Version/11.52”, ]

        中間件文件customUserAgent.py,隨機(jī)使用資源文件中的User-Agent,具體實現(xiàn)如下。

        Class RandomUserAgent(UserAgentMiddleware):

        Def process_request(self,request,spider):

        Ua= random.choice(UserAgents)

        Request.headers.setdefault(‘User-Agent, ua)

        修改配置文件settings.py,將RandomUserAgent加入到DOWNLOADER_MIDDLEWARES中,具體實現(xiàn)如下。

        DOWNLOADER_MIDDLEWARES = {

        ‘myproject.middlewares.customUserAgent.RandomUserAgent:30,

        ‘scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware:None

        }

        通過以上代碼,爬蟲具備破解User-Agent封鎖的能力。

        4 破解IP封鎖

        網(wǎng)站可通過IP來確定用戶身份,當(dāng)在同一連續(xù)時間段中,多個請求由同一IP的用戶發(fā)起,如果請求數(shù)量較少,則可判斷為網(wǎng)吧或大型局域網(wǎng)[3],允許其訪問;如果請求數(shù)量較多,則可判斷為網(wǎng)絡(luò)爬蟲,從而拒絕其訪問;因此,網(wǎng)絡(luò)爬蟲可以準(zhǔn)備一個代理池,發(fā)出請求時隨機(jī)選一個代理服務(wù)器使用,以達(dá)到破解IP封鎖。

        在Scrapy框架中,為了實現(xiàn)破解IP封鎖,需要在settings.py的同級目錄創(chuàng)建middlewares模塊;在模塊中,創(chuàng)建資源文件resource.py和中間件文件customeProxy.py。resource.py用于存放多個網(wǎng)絡(luò)代理;customProxy.py用于隨機(jī)調(diào)用不同的代理服務(wù)器。

        資源文件resource.py,將裝有多個代理服務(wù)器的代理池放在列表中,具體實現(xiàn)如下。

        PROXIES = [

        ‘110.73.7.47:8123,

        ‘110.73.42.145:8123,

        ‘182.89.3.95:8123,

        ‘39.1.40.234:8080,

        ‘39.1.37.165.8080

        ]

        中間件文件customProxy.py,隨機(jī)使用資源文件中的代理服務(wù)器IP,具體實現(xiàn)如下。

        Class RandomProxy(object):

        Def process_request(self,request,spider):

        Ua= random.choice(PROXIES)

        Request.meta[‘proxy]= ‘http://%s ?%proxy

        修改配置文件settings.py,將RandomProxy加入到DOWNLOADER_MIDDLEWARES中,具體實現(xiàn)如下。

        DOWNLOADER_MIDDLEWARES = {

        ‘myproject.middlewares.customUserAgent.RandomUserAgent:30,

        ‘scrapy.contrib.downloadermiddleware.useragent.UserAgentMiddleware:None,

        ‘myproject.middlewares.customProxy.RandomUserAgent:10,

        ‘scrapy.contrib.downloadermiddleware.httpproxy.HttpProxyMiddleware:20

        }

        5 結(jié)束語

        綜上所述,網(wǎng)絡(luò)爬蟲最常見的時間間隔封鎖,Cookie封鎖,User-Agent封鎖,IP封鎖,都有相應(yīng)的攻擊方法破解;本文以網(wǎng)絡(luò)爬蟲Scrapy框架為基礎(chǔ),給出以上4種封鎖技術(shù)的破解方法及實現(xiàn)代碼。

        參考文獻(xiàn)

        [1]潘曉英,陳柳,余慧敏,趙逸喆,肖康濘.主題爬蟲技術(shù)研究綜述[J/OL].計算機(jī)應(yīng)用研究:1-6[2019-10-03].

        [2]劉清.網(wǎng)絡(luò)爬蟲針對“反爬”網(wǎng)站的爬取策略分析[J].信息與電腦(理論版).2019(03).

        [3]黃克敏.網(wǎng)站信息安全之反爬蟲策略[J].保密科學(xué)技術(shù),2018(10):62-63.

        猜你喜歡
        爬蟲封鎖間隔
        利用網(wǎng)絡(luò)爬蟲技術(shù)驗證房地產(chǎn)灰犀牛之說
        基于Python的網(wǎng)絡(luò)爬蟲和反爬蟲技術(shù)研究
        間隔問題
        新世紀(jì)智能(高一語文)(2020年5期)2020-07-24 08:27:12
        間隔之謎
        利用爬蟲技術(shù)的Geo-Gnutel la VANET流量采集
        電子測試(2018年1期)2018-04-18 11:53:04
        大數(shù)據(jù)環(huán)境下基于python的網(wǎng)絡(luò)爬蟲技術(shù)
        電子制作(2017年9期)2017-04-17 03:00:46
        上樓梯的學(xué)問
        頭夾球接力
        二戰(zhàn)以來三次島嶼封鎖作戰(zhàn)的戰(zhàn)略決策及啟示
        軍事歷史(2004年3期)2004-11-22 07:28:36
        久久噜噜噜| 日本一卡二卡3卡四卡免费观影2022| 亚洲国产av无码专区亚洲av| 国产成人无码区免费网站| 亚洲AV无码国产精品色午夜软件 | 国产精品欧美久久久久老妞| 亚洲av一区二区三区网站| 中文字幕一区二区三区的| 丰满少妇a级毛片野外| 国产激情电影综合在线看| 蜜桃在线一区二区三区| 中文字幕漂亮人妻在线| 亚洲女初尝黑人巨高清| 欧美日韩精品福利在线观看| 天堂av在线播放观看| 国产白浆一区二区三区性色| 亚洲av蜜桃永久无码精品| 欧美日本道免费二区三区| 精品亚洲国产亚洲国产| 国产熟妇疯狂4p交在线播放| 亚洲依依成人亚洲社区| 亚洲无线码一区在线观看| 国产乱淫h侵犯在线观看| 专干老熟女视频在线观看| 大地资源中文第三页| 亚洲精品尤物av在线网站| 男人的天堂一区二av| 亚洲精品美女久久久久99| av深夜福利在线| 亚洲三级香港三级久久| 国产精品毛片一区二区三区| 国产一级农村无码| 日本午夜一区二区视频| 我和隔壁的少妇人妻hd| 无码任你躁久久久久久| 亚洲一区精品中文字幕| 日本一区二区视频高清| 日本精品αv中文字幕| 亚洲三级香港三级久久| 久久99精品久久只有精品| 国产午夜福利在线观看红一片|