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

        您的位置:新聞資訊 >文章內容
        爬蟲怎么突破驗證碼限制
        來源:karyuet 作者:admin 時間:2018-12-14 18:06:47

                除了常見的IP限制,爬蟲在采集數據時還會遇到驗證碼研制,特別是12306的驗證碼,大家都深有體會,難倒了多少人??!

                但神奇的是,難倒了大批人,爬蟲的速度還是那么的快,這是為什么呢?爬蟲怎么突破驗證碼限制的?下面小編介紹一下案例:

                做了一個分布式的爬蟲爬取知乎用戶信息,將一個slave端放在了阿里云服務器上,爬了一個小時后提示“ip訪問頻繁,請進行驗證用于確認這些請求不是自動發出的“。

                原來是爬的太快了,被知乎發現了,要求輸入驗證碼,類似以下



        爬蟲怎么突破驗證碼限制

                一般的圖片驗證碼,可以用云打碼或保存本地識別后再發送post請求之類的,這種拖動滑塊驗證碼在無界面的centos系統上就很難受了。

                研究了半天終于找到了解決方案:將阿里云服務器作為代理服務器,本地瀏覽器使用代理ip登陸知乎,完成驗證,ip解除禁止。

               使用squid:

               安裝:yum install squid

               配置:

                         1.vi  /etc/squid/squid.conf,  在結尾處追加:

                        dns_nameservers 8.8.8.8

                        http_port 8000

                        http_access allow all

                        cache_mem 60 MB

                        2.注釋掉默認的http_access deny all


            創建squid交換目錄

                        cd /usr/sbin/

                        ./squid -z

            啟動squid、查看端口狀態:

                        ./squid

                        netstat -ntl

            停止squid

                        ./squid -k shutdown

                此時,將瀏覽器的代理IP設置為你服務器的IP,端口設置成上面的8000,使用chrome直接設置代理會不管用,這里選擇用selenium

                        from seleniumimport webdriver

                        chromeOptions = webdriver.ChromeOptions()

                        chromeOptions.add_argument("--proxy-server=http://服務器ip:8000")

                        url= 'https://www.zhihu.com'

                        driver = webdriver.Chrome(chrome_options = chromeOptions)

                        driver.get(url)

                        time.sleep(60)

                等網頁打開滑動進行驗證,此時ip已經解除限制了。 


        相關文章內容簡介
        解鎖高速不限量IP代理
        在線咨詢
        微信公眾號

        微信公眾號

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