最近咱們收到不少抓取數據的技術諮詢的來信,例如:git
「博士,您好,向您請教個問題,新浪微博搜索調整了過濾機制,頁面搜索數據返回大大減小,不到商業搜索的5%,對於頁面搜索的爬取,博士可否分享一下經驗?如何儘可能多的爬到數據?謝謝!」程序員
「我發現XXXX有個漏洞,只要怎麼怎麼就能抓到不少數據」github
今天我繼續談談我作爬蟲的一些技術觀點。緩存
1)必定要走大路服務器
我認識不少作微博數據抓取的人,他們以爲帳號登錄是一個很麻煩的事情,惟一不須要帳號登錄的就是微博搜索,他有不少關鍵詞,天天拿這些關鍵詞去搜,也能獲得不少微博數據,很開心。忽然有一天,微博返回結果不多了。。還有些就是處處找漏洞,發現一個漏洞就猛用,當一天人家堵住漏洞了,蝦米了。。微信
作業餘爬蟲,抓下來數據就好了,這其實還很不夠,要找到終極方法,長治久安的穩定的獲取數據,這纔是專業爬蟲,也就是一開始就要走大路,要走普通用戶都獲取數據的方式來,那麼要想堵住爬蟲,則須要付出巨大的代價。socket
2)必定要擬人化網站
這是我一再強調了,而且寫入了個人博士畢業論文,爬蟲必定要想真實用戶同樣的去訪問數據,多少頻率刷新一下數據,如何跳轉,都有模擬真實用戶訪問行爲。spa
3)必定要有足夠多的IP和帳號.net
帳號怎麼來,淘寶上買,多買幾家,渠道要diversity,帳號的註冊時間要老,不能買剛註冊的,起碼是1年之前註冊的。IP怎麼來,這個其實也能夠淘寶上買,找各類QQ羣找賣家,渠道也要多。
4)不要太貪
非要把人家微博數據都抓全,這得多大代價,抓個採樣數據作作研究就夠了,太貪就容易進入一個掙扎的通道,廠商就會和你搏殺了,你看我天天不抓太多,相安無事。
作爬蟲,技術其實沒有盡頭,你看我最近還在解決dns緩存的問題,下載一個微博page有時候要解析多大30多個域名,若是dns緩存有問題那代價是很大的,這方面能夠本身作dns緩存,作這種車輪的人已經不少了;另外還有包括如何開一個牛逼的socket5端口,這方面的我軍和美軍車輪都不少,github上烏央烏央的,但真正作一個好的sock5服務器,並不容易,須要解決不少技術問題,好比數據加載超時,好比小塊內存的分配和釋放問題等等。另外在多IP環境下,每次一個連接的創建,都須要一次鎖操做來從本地端口池中找一個臨時端口,一個IP無所謂,若是一塊網卡上綁定多個IP,每一個IP都有大量數據通信,這就是大問題了。
我會在近期找個時間在北京地區開一個爬蟲party,歡迎作這行的人,都見見面,認識認識,固然有單位願意贊助的能夠聯繫我,費用也不高,估計也就1萬元左右(主要是包場地用)。
最後推薦一個優秀微信公共帳號,曹政同窗開了微信公共帳號(帳號名:caozsay)。曹同窗是早年百度的老同志,後來4399當CTO,江湖人脈深厚,對互聯網有深入理解,數據控,特別是對遊戲行業頗有專研,目前定居在新加坡,國內有業務。你們能夠關注下,頗有思想內涵。
網友來信
網友A:梁博有沒有作一個統計,將來對於程序員就業需求的缺口?上次看報道分析,美國近將來20年程序員就業缺口還有140w啊,中國怎麼會就遭遇冷天了。
答:如今大環境是美國經濟開始復甦,國內狀況並不太樂觀。美國是高科技立國,全社會都比較重視這種高科技搞技術人才,這類人也是最容易移民的。整體上看,國內狀況還不是那麼糟糕,程序員的需求量依然很大,畢竟還有這麼多創業公司,如今是創業大潮。
網友B:梁博你好,關注你好幾年了最近有些困擾,想聽聽你的見解。領導給下屬安排工做內容時,是否會適當考慮下屬的興趣點和擅長?仍是大部分會看項目,須要什麼就讓你作什麼?做爲一個傳統企業裏的碼農,同時要會數據分析、網站開發、軟件開發,以及機械設計軟件的二次開發…我已經無力吐槽了/::<想在一個方向上深刻幾乎不可能實現。值得嘛?
答:昨天微博還有人說如今有沒有國內碼農作一個技術方向作5年以上的,而後有人回答作lisp的傘哥作了5年。目前他人在乎大利留學,其故事大多數人都知道我就很少說了。總之,專研一個技術多年在國內確實很難,領導安排工做是絕對不會以你的興趣和特長爲出發點來設計工做內容的,主要是根據工做內容來找當前可能最合適的人。
其餘常見問題
Q:如何在pennyjob投放廣告
A:咱們暫時只服務碼農的找工做需求和招聘告發布。請找聯繫:pennyjob@qq.com 發佈大家的信息 。
Q:本欄目擔保的靠譜服務有哪些