ip 反爬

前提

python
scrapy

問(wèn)題描述

  • 搜狗微信搜索關(guān)鍵詞出現(xiàn)安全驗(yàn)證
  • 地址:https://weixin.sogou.com/antispider/?from=%2Fweixin%3Fp%3D01030402%26query%3D%E6%B3%B0%E5%B1%B1%26type%3D2%26ie%3Dutf8
  • 截圖


    image.png

    用戶您好,我們的系統(tǒng)檢測(cè)到您網(wǎng)絡(luò)中存在異常訪問(wèn)請(qǐng)求。
    此驗(yàn)證碼用于確認(rèn)這些請(qǐng)求是您的正常行為而不是自動(dòng)程序發(fā)出的,需要您協(xié)助驗(yàn)證。

  • 直接使用瀏覽器連續(xù)刷新(20次左右)就會(huì)觸發(fā)安全驗(yàn)證,這樣可能誤傷到正常用戶
  • postman模擬請(qǐng)求連續(xù)刷新也會(huì)觸發(fā)安全驗(yàn)證


    image.png

解決辦法

識(shí)別圖片驗(yàn)證碼

  • 超級(jí)鷹打碼,識(shí)別圖片驗(yàn)證碼
  • 驗(yàn)證通過(guò)仍然會(huì)被驗(yàn)證

代理IP

  • 觸發(fā)安全驗(yàn)證的依據(jù)是檢測(cè)IP的訪問(wèn)頻率
  • 代理IP正好解決這個(gè)問(wèn)題

如何使用

  • 搜集網(wǎng)上免費(fèi)的代理,雖然行但是質(zhì)量很不好
  • 付費(fèi)代理IP,短時(shí)高效,高匿的會(huì)更好
    -scrapy接入代理IP,代理IP通過(guò)購(gòu)買的接口獲取
class ProxyMiddleware(object):
    def __init__(self, proxy_url, proxy_auth):
        self.logger = logging.getLogger(__name__)
        self.proxy_url = proxy_url
        self.proxy_auth = proxy_auth

    def get_random_proxy(self):
        try:
            response = requests.get(self.proxy_url)
            if response.status_code == 200:
                proxy = response.text
                return proxy
        except requests.ConnectionError:
            return False

    def process_request(self, request, spider):
        proxy = self.get_random_proxy()
        if proxy:
            json_data = json.loads(proxy)
            ip = json_data['ip']
            port = json_data['port']
            proxy_info = self.proxy_auth + '@' + ip + ':' + str(port)
            uri = 'https://{proxy}'.format(proxy=proxy_info)
            request.meta['proxy'] = uri
            self.logger.debug('使用代理:' + proxy)

    @classmethod
    def from_crawler(cls, crawler):
        settings = crawler.settings
        return cls(
            proxy_url=settings.get('PROXY_URL'),
            proxy_auth=settings.get('PROXY_AUTH')
        )
  'DOWNLOADER_MIDDLEWARES': {
             'wechatest.middlewares.ProxyMiddleware': 543,
        },

再啟用就可以了

結(jié)果

使用代理IP可以解決安全驗(yàn)證的問(wèn)題(IP頻率反爬)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容