常見的反爬手段和解決思路

1.通過headers中的User-Agent字段來反爬

隨機生成User-Agent:

import random

def get_ua():
    first_num = random.randint(55, 62)
    third_num = random.randint(0, 3200)
    fourth_num = random.randint(0, 140)
    os_type = [
        '(Windows NT 6.1; WOW64)', '(Windows NT 10.0; WOW64)', '(X11; Linux x86_64)',
        '(Macintosh; Intel Mac OS X 10_12_6)'
    ]
    chrome_version = 'Chrome/{}.0.{}.{}'.format(first_num, third_num, fourth_num)

    ua = ' '.join(['Mozilla/5.0', random.choice(os_type), 'AppleWebKit/537.36',
                   '(KHTML, like Gecko)', chrome_version, 'Safari/537.36']
                  )
    return ua

2. 通過referer字段或者是其他字段來反爬

通過referer字段來反爬,我們只需要添加上即可

3.通過cookie來反爬

  • 如果目標網站不需要登錄 每次請求帶上前一次返回的cookie,比如requests模塊的session

  • 如果目標網站需要登錄 準備多個賬號,通過一個程序獲取賬號對應的cookie,組成cookie池,其他程序使用這些cookie

4.通過js來反爬

使用selenium

5.通過驗證碼來反爬

通過打碼平臺或者是機器學習的方法識別驗證碼,其中打碼平臺廉價易用

6.通過ip地址來反爬

同一個ip大量請求了對方服務器,有更大的可能性會被識別爲爬蟲,對應的通過購買高質量的ip的方式能夠結局問題

7.通過自定義字體來反爬

解決思路:切換到手機版

8.通過css來反爬

解決思路:計算css的偏移

發佈了34 篇原創文章 · 獲贊 3 · 訪問量 1萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章