• <th id="bb20k"></th>
    1. <th id="bb20k"></th>
      1. <th id="bb20k"></th>
        <progress id="bb20k"></progress>

        您的位置:新聞資訊 >文章內容
        網絡爬蟲怎么預防被封殺?通用五種預防方法介紹
        來源:mrlevo520 作者:admin 時間:2018-12-11 17:09:58

        對于爬蟲而言,要獲得大量的信息,要了解對方的反爬蟲機制情況,預防在采集過程中被批量封殺IP,那么網絡爬蟲怎么預防被封殺?

        對方是怎么檢測你是用戶還是爬蟲的呢?下文總結了一些網絡爬蟲怎么預防被封殺的方法。


        一、設置等待時間

        有一些網站的防范措施可能會因為你快速提交表單而把你當做機器人爬蟲,比如說以非常人的速度下載圖片,登錄網站,爬取信息。

        常見的設置等待時間有兩種,一種是顯性等待時間(強制停幾秒),一種是隱性等待時間(看具體情況,比如根據元素加載完成需要時間而等待)

        1.顯性等待時間

        import time#導入包time.sleep(3)#設置時間間隔為3秒

        而且盡量在夜深人靜的時候進行數據的采集,切記采集不要太快,不然容易讓網站識別出你個非人類

        2.隱式等待
        這里用到的主要語句,以wait.until()為例
        比如說形式如下

        wait1.until(lambda driver: driver.find_element_by_xpath("//div[@id='link-report']/span"))

        上面的語句就是在等待頁面元素加載全部完成后才進行下一步操作,因為爬蟲速度太快,導致一些元素沒有被加載完全就進行下一步操作而導致沒有查找到元素或者被網站認為是機器人在進行瀏覽。



        二、修改請求頭

        識別你是機器人還是人類瀏覽器瀏覽的重要依據就是User-Agent,比如人類用瀏覽器瀏覽就會使這個樣子的User-Agent:'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36'

        這里拿urllib2來說,默認的User-Agent是Python-urllib2/2.7,所以要進行修改。

        import urllib2

        req = urllib2.Request(url)

        #多了以下一這一步而已

        req.add_header('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')

        response = urllib2.urlopen(req)


        三、采用代理ip

        當自己的ip被網站封了之后,只能采取換代理ip的方式進行爬取,所以,我建議,每次爬取的時候盡量用代理來爬,封了代理,還有代理,無窮無盡啊。代理的實現程序:

        # -*- coding: utf-8 -*-import urllib2

        url = "http://www.ip181.com/"proxy_support = urllib2.ProxyHandler({'http':'121.40.108.76'})#參數是一個字典{'類型':'代理ip:端口號'}opener = urllib2.build_opener(proxy_support)#定制openeropener.add_handler=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')]#add_handler給加上偽裝urllib2.install_opener(opener)

        response = urllib2.urlopen(url)print response.read().decode('gbk')


        檢驗自己是否用代理ip成功:

        網絡爬蟲怎么預防被封殺?通用五種預防方法介紹

        使用代理ip訪問

        從結果中可以看出,檢測出了代理ip,正是我自己加上的ip值,此乃最后一招,當自己ip被封后,采用代理ip進行訪問。
        要是一個代理ip掛了怎么辦,那你可以做個ip池啊,就是把一堆代理ip放在一起,每次運行時從ip池挑一個代理ip當做訪問ip就可以了!

        采用ip池的方法~~~~~舉個栗子

        # -*- coding: utf-8 -*-

        import urllib2

        import random


        ip_list=['119.6.136.122','114.106.77.14']

        #使用一組ip調用random函數來隨機使用其中一個ip

        url = "http://www.ip181.com/"proxy_support = urllib2.ProxyHandler({'http':random.choice(ip_list)})

        #參數是一個字典{'類型':'代理ip:端口號'}opener = urllib2.build_opener(proxy_support)

        #定制opener

        opener.add_handler=[('User-Agent','Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/45.0.2454.101 Safari/537.36')]

        #add_handler給加上偽裝

        urllib2.install_opener(opener)

        response = urllib2.urlopen(url)

        print response.read().decode('gbk')

        網絡爬蟲怎么預防被封殺?通用五種預防方法介紹

        使用ip池抽取ip訪問

        采用代理ip池的方法,可以看出,檢測出的ip是ip池中的一個,對吧,很簡單對不對,那么怎么來創建ip池呢,也很簡單,用動態或者靜態方法隨便找個匿名ip的網站進行代理ip爬取,然后清洗一下ip,把能用的(測試一個簡單的返回狀態網頁)留下來寫到列表里,然后就可以形成ip池啦,最后當某個ip不能用了,那就從池中剔除!


        四、避開不可見元素陷阱

        自己爬著爬著就把隱藏元素都爬出來了,你說你自己是不是爬蟲吧,這是網站給爬蟲的陷阱,只要發現,立馬封IP,所以請查看一下元素再進行爬??!
        比如說這個網址,一個簡單的登錄頁面,從審查元素中我們可以看到有一些元素是不可見的!

        網絡爬蟲怎么預防被封殺?通用五種預防方法介紹

        上述中可以看到隱藏的value和不顯示的url

        查找出陷阱url和不可見的value代碼

        網絡爬蟲怎么預防被封殺?通用五種預防方法介紹

        結果就是

        the link http://pythonscraping.com/dontgohereis a trap
        do not change value of phone
        do not change value of email


        五、采用分布式爬取 

        分布式爬取,針對比較大型爬蟲系統,實現步驟如下所示
        1.基本的http抓取工具,如scrapy
        2.避免重復抓取網頁,如Bloom Filter
        3.維護一個所有集群機器能夠有效分享的分布式隊列
        4.將分布式隊列和Scrapy結合
        5.后續處理,網頁析?。╬ython-goose),存儲(Mongodb)
        (知乎上看到的補充一下)

        通過上文,大家其實可以發現,爬蟲預防被封殺的方法比較多,而且大部分的方法都是可以通用的,盡量把爬蟲從頭偽裝到底,這樣可以降低被封殺的幾率。

        相關文章內容簡介
        解鎖高速不限量IP代理
        精靈代理-專業提供國內動態ip代理 ip加速器 http代理 網絡加速器服務。解鎖高速不限量IP代理在當今互聯網時代,隨著網絡安全和隱私保護意識的提高,許多人都開始關注如何保護自己的在線活動不受跟蹤和監視。IP代理就成為了一種常用的工具,通過隱藏真實IP地址來保護個人隱私和保密性。而高速不限量IP代理更是用戶們追求的目標。高速代理的重要性對于許多用戶來說,網絡速度是使用代理時最關鍵的問題之一。如果代理速度太慢,會導致網頁加載緩慢,甚至無法正常使用某些服務。因此,高速代理變得尤為重要。高速代理可以確保用戶在使用代理時,不會受到速度的限制,能夠正常流暢地訪問各種網站和服務。不限量代理的優勢另外,不限量的代理也是用戶們所追求的。有些代理服務提供商會對用戶的流量進行限制,一旦超出限制就會導致代理服務無法正常使用。而不限量的代理則可以避免這個問題,用戶可以隨意使用代理服務,不用擔心流量限制的問題。如何解鎖高速不限量IP代理要解鎖高速不限量IP代理,首先需要選擇一個可靠的代理服務提供商。在選擇代理服務提供商時,用戶需要注意服務商的信譽度、服務質量和價格等因素...[閱讀全文]
        在線咨詢
        微信公眾號

        微信公眾號

        回到頂部
        国产欧美 一区,国产一本大道香蕉AV,国产亚洲卡通另类图片,国产高清AV在线