解決目標網站封爬蟲的3步方法

mmz_77 發表於 2022-05-13
爬蟲

作為爬蟲工作者,在我們日常獲取資料的過程中難免發生ip被封和403錯誤等等,這都是網站檢測出你是爬蟲而進行反爬措施,所以今天在這裡為大家總結一下怎麼用IP代理防止被封的方法。

1、設定等待時間,種是顯性等待時間(強制停幾秒),一種是隱性等待時間。

2、修改請求頭:識別你是機器人還是人類瀏覽器瀏覽的重要依據就是User-Agent。

3、採用代理ip/建代理ip池,直接看程式碼。利用動態ip代理,可以強有力地保障爬蟲不會被封,能夠正常執行。以下為使用代理ip的實際示例,在使用IP量上需要看自己的需求,大型專案是必須用大量ip的。

#! -*- encoding:utf-8 -*-
    import requests
    import random
    # 要訪問的目標頁面
    targetUrl = "
    # 要訪問的目標HTTPS頁面
    # targetUrl = "
    # 代理伺服器(產品官網 )
    proxyHost = "t.16yun.cn"
    proxyPort = "31111"
    # 代理驗證資訊
    proxyUser = "username"
    proxyPass = "password"
    proxyMeta = "http://%(user)s:%(pass)[email protected]%(host)s:%(port)s" % {
        "host" : proxyHost,
        "port" : proxyPort,
        "user" : proxyUser,
        "pass" : proxyPass,
    }
    # 設定 http和https訪問都是用HTTP代理
    proxies = {
        "http"  : proxyMeta,
        "https" : proxyMeta,
    }
    #  設定IP切換頭
    tunnel = random.randint(1,10000)
    headers = {"Proxy-Tunnel": str(tunnel)}
    resp = requests.get(targetUrl, proxies=proxies, headers=headers)
    print resp.status_code
    print resp.text

只有我們在採集資料過程中 做好以上3個步驟,大致爬蟲的執行就不成問題了。但是這些都是基本的反爬措施,現在有很多大型網站做設定的反爬機制更嚴,對技術要求更高,所以需要我們隨時學習更深的爬蟲技術。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31522063/viewspace-2894016/,如需轉載,請註明出處,否則將追究法律責任。