郵件個人朋友們。
css
大家問的問題絕大部分都能在網上得到相關資料,花點時間嘗試便可解決。web
其餘合做或諮詢請提供相關內容與預算參考。數據庫
博客與郵件意味着時間花費,我偶爾會看下這個博客,發給這個博客關聯的郵箱的郵件會被轉到另外一個郵箱,我會在1,2周內看到郵件。瀏覽器
我目前仍舊作一些定製爬蟲的事。下面的一段話或許對各位朋友有所幫助。服務器
對於scrapy架構,拋開定製爬蟲相關的一些技術細節(特定網站的防爬取突破,爬蟲運行策略等)。scrapy的架構在不作大改的狀況下,較適合最多不超過千萬級(天天千萬的請求量,千萬級的解析量(要看具體解析內容,解析是計算密集型))天天的爬取。網絡
大改的話-。-我傾向於重寫。主要在請求調度(網絡io密集,cpu消耗通常)以及解析調度(cpu密集)。然而即便重寫的話,我依然會使用scrapy的內容解析部分(css and xpath selector)。架構
對於js模擬,目前有了一些新的技術。除手工模擬外,若使用phantomjs,webkit等模擬,關鍵在於異步化以及js模擬的調度(用模擬瀏覽器的方式訪問頁面,js屬於cpu密集)。異步
對於ip限制。天天都要進行的爬取,追求穩定的,推薦使用按需付費的雲主機,自建代理。對於偶爾的一次性爬取,可考慮taobao買代理,本身掃。自掃推薦用masscan先作端口掃描,再作代理可用性檢測。scrapy
在解析不是瓶頸無需優化的狀況下,幾乎徹底使用css選擇,某些時候xpath,不要使用正則。這樣將擁有最好的開發效率和維護成本。測試
當你的爬蟲效率低的時候,確認是卡在CPU,網絡IO仍是磁盤IO上。
卡在CPU上時,profile一下確認瓶頸代碼段,scrapy自帶的item_loader裏面用了不少動態特性,較卡cpu。另外若是計算資源實在不夠,只能在開發代碼上優化一下,寫出效率更高css,xpath選擇器(少用通用選擇器,但這樣會影響開發效率)。
卡網絡io時-。-測試下是本身網絡不佳仍是對面服務器扛不住了。檢查下dns。
卡磁盤io。看下數據庫看下磁盤io-。-。
啊。大概就是這些了。