2 回答

TA貢獻2039條經驗 獲得超8個贊
選擇爬蟲方案最終取決于需要爬去的數據量,時間成本和金錢成本。
最快速的方案 - 使用HTTP代理
使用HTTP代理 + 異步IO,每秒可以處理100左右的HTTP請求(根據機器配置和網絡而定)。但是免費的HTTP代理一是需要自己來抓,二是并不穩定。如果使用付費的HTTP代理,這個需要錢了。
比使用HTTP代理更簡單的方案 - 多線程
每次開2-4個線程來訪問頁面,也就是同時只能處理2-4個HTTP請求,然后一直跑下去,如果需要爬去的數據量不多,這個是最簡單的解決方案。比如處理一次HTTP請求需要200ms,每次處理4個請求,一秒可以抓取20個頁面,一天可以抓取 20 * 60 * 60 * 24 = 1728000 。
最合適的方案 - 分布式
使用多線程 + 分布式,比如一臺機器抓取一天可以抓取172w數據,兩臺就是344w數據。
最終解決方案 - 分布式 + HTTP代理
根據之前爬去拉勾網的時實踐,同一個IP同時發送4個HTTP請求是不會被ban的,所以一個IP可以保證4個HTTP并發量,如果有10個HTTP代理,每秒就可以獲取200個頁面,一天可以爬去200 * 60 * 60 * 24 = 17280000個頁面。最好是分布式不使用代理,因為每加一臺機器,就相當于多了一個IP。
具體的一個IP的并發量需要自己測試,不過最好一個IP同時只處理一個HTTP連接。
其它的注意事項
設置Uuser-Agent
帶上cookie,以抓取天貓商城為例,如果不帶上cookie,天貓每次需要重定向3次才會跳轉到目標頁面
添加回答
舉報