吸引你的也許是品牌,感動你的絕對是服務
資訊分類:常見問題 | 文章編輯:小馬哥 | 發布日期:2020-01-19 | 瀏覽量:3772次
確實,通過這些原本主要是用來顯示網站的服務運行 Python 腳本有點兒復雜。比如,你可能會發現網絡爬蟲運行時網站的加載速度變慢了。其實,在整個采集任務完成之前頁面都是不會加載的(得等到所有“print”語句的輸出內容都顯示完)。這可能會消耗幾分鐘,幾小時,甚至永遠也完成不了,要看程序的具體情況了。雖然它最終一定能完成任務,但是可能你還想看到實時的結果,這樣就需要一臺真正的服務器了。
從云主機運行
雖然云計算的花費可能是無底洞,但是寫這篇文章時,啟動一個計算實例最便宜只要每小時 1.3 美分(亞馬遜 EC2 的 micro 實例,其他實例會更貴),Google 最便宜的計算實例是每小時 4.5 美分,最少需要用 10 分鐘。考慮計算能力的規模效應,從大公司買一個小型的云計算實例的費用,和自己買一臺專業實體機的費用應該差不多——不過用云計算不需要雇人去維護設備。
設置好計算實例之后,你就有了新 IP 地址、用戶名,以及可以通過 SSH 進行實例連接的公私密鑰了。后面要做的每件事情,都應該和你在實體服務器上干的事情一樣了——當然,你不需要再擔心硬件維護,也不用運行復雜多余的監控工具了。
總結
爬蟲被封禁常見原因列表
如果你一直被網站封殺卻找不到原因,那么這里有個檢查列表,可以幫你診斷一下問題出在哪里。
首先,檢查 JavaScript 。如果你從網絡服務器收到的頁面是空白的,缺少信息,或其遇到他不符合你預期的情況(或者不是你在瀏覽器上看到的內容),有可能是因為網站創建頁面的JavaScript 執行有問題。
檢查正常瀏覽器提交的參數。如果你準備向網站提交表單或發出POST請求,記得檢查一下頁面的內容,看看你想提交的每個字段是不是都已經填好,而且格式也正確。用 Chrome 瀏覽器的網絡面板(快捷鍵 F12 打開開發者控制臺,然后點擊“Network”即可看到)查看發送到網站的POST命令,確認你的每個參數都是正確的。
是否有合法的 Cookie?如果你已經登錄網站卻不能保持登錄狀態,或者網站上出現了其他的“登錄狀態”異常,請檢查你的 cookie。確認在加載每個頁面時 cookie 都被正確調用,而且你的 cookie 在每次發起請求時都發送到了網站上。
IP 被封禁?如果你在客戶端遇到了 HTTP 錯誤,尤其是 403 禁止訪問錯誤,這可能說明網站已經把你的 IP 當作機器人了,不再接受你的任何請求。你要么等待你的 IP 地址從網站黑名單里移除,要么就換個 IP 地址(可以去星巴克上網)。如果你確定自己并沒有被封殺,那么再檢查下面的內容。
確認你的爬蟲在網站上的速度不是特別快。快速采集是一種惡習,會對網管的服務器造成沉重的負擔,還會讓你陷入違法境地,也是 IP 被網站列入黑名單的首要原因。給你的爬蟲增加延遲,讓它們在夜深人靜的時候運行。切記:匆匆忙忙寫程序或收集數據都是拙劣項目管理的表現;應該提前做好計劃,避免臨陣慌亂。
還有一件必須做的事情:修改你的請求頭!有些網站會封殺任何聲稱自己是爬蟲的訪問者。如果你不確定請求頭的值怎樣才算合適,就用你自己瀏覽器的請求頭吧。
確認你沒有點擊或訪問任何人類用戶通常不能點擊或接入的信息。
如果你用了一大堆復雜的手段才接入網站,考慮聯系一下網管吧,告訴他們你的目的。試試發郵件到 webmaster@< 域名 > 或 admin@< 域名 >,請求網管允許你使用爬蟲采集數據。管理員也是人嘛!