現在的網路爬蟲的研究成果和存在的問題有哪些?
01-18
現在的網路爬蟲的研究成果和存在的問題有哪些?
首先有三個最需要解決的問題:
- 法律和道德風險:爬蟲抓取其它網站數據,雖然抓取的內容大部分是公開的,但是商用或者有損源網站利益,於法於理都說不過去。目前我國(或者說大部分國家)針對互聯網的方方面面法律覆蓋度還遠遠不夠。
- 訪問速度與瓶頸:爬蟲的訪問速度依賴於網速(尤其是伺服器出口帶寬以及用戶入口帶寬)和開發者的水平,而大部分商業網站都會有反爬蟲機制,其中最簡單就是通過頻率限制,複雜的則會加上很多維度的判斷。如何高效抓取?如果數據量不大,則可以通過在兩次請求間休息一段時間,如果數據量很大,則需要考慮有一套高效、可用的代理 IP 機制。
- 驗證碼:現在的驗證碼已經從簡單的輸入幾個字母,變得複雜了很多,比如拖動滑塊甚至是 Google 的 reCAPTCHA 這樣基於機器學習的驗證碼模塊。在識別驗證碼的開銷與數據所能獲得的收益之間,要找到一個平衡點。
- 如何不基於規則地解析數據:大部分網上的爬蟲教程,都是講如何發請求、如何抽取數據。對於特定網站這是可行的,但是對於幾百上千個網站,這樣的做法就實在太慢了,如何不基於規則而解析數據,才能達到高效獲取數據(高效指的是開發效率,因為不需要針對特定網站單獨實現規則)。
- 通用性與易用性:現有的所謂現成的採集工具,大多是不夠通用易用的。那些採集工具,專業的看不上,小白依然不會,用戶估計(沒有調查,純腦洞)大部分都是半吊子水平,代碼寫不出,但是又多少知道點。
- 數據變現:整體來講,雖然抓取數據有很多門檻,但是其實想要從互聯網抓數據還是非常容易的,如何讓你抓下來的數據產生價值,這是一個難題。
- 其他:歡迎補充~
在工程中有這樣一些問題,
1,快速頻繁訪問會被封IP,一般可通過代理和增加等待時間解決;
2,需要登錄信息,例如微博,可通過攜帶cookie解決;3,國內下載國外網站可以用國外代理;4,網頁解析,有比較成熟的各種庫,常用的有python語言;5,正文抽取6,網頁去重
一個個倒在商業模式面前,單純興趣永遠不可能成事
visual scraper,不用寫代碼也能通過圖形界面快速定義出一個爬蟲來用,比如Portia。
研究成果不敢說,網路爬蟲本身只是一個數據獲取的工具,在機器學習和數據挖掘中,是最前面的那一塊兒,甚至可以說是最粗糙的一塊兒。
現在各種爬蟲框架都非常完善,從語言層面到開源的解析架構,幾乎任何一個會一門編程語言的人都可以寫只爬蟲。個人感覺,現在爬蟲在項目中遇到的問題,主要是兩個:
1.帶寬和IO帶來的速度瓶頸——沒辦法,口子就這麼大,亞馬遜上面有億萬級的商品數據,可一秒十幾個的速度,不知道要爬到何年何月。
2.諸如電商網站,對於反爬蟲策略的殺手鐧——驗證碼和ip封殺。驗證碼要尋求ocr的幫助,甚至做一些圖片去噪,這是性能消耗很大的一部操作,對於一般項目可以說是得不償失。ip封殺可以用高匿代理,抓一些代理ip來偽裝爬蟲,但是在高頻爬蟲身上,往往運行到所有的代理ip都失效了,目標數據才抓取了一點。就需求方來說,現在需要爬蟲的公司,大都是做商貿之類的,依賴于海量的商品價格進行議價。他們對爬蟲的需求遠超過自己願意提供的支持。你很難為了這種項目來設計一個分散式系統,來解決上訴問題。而超級公司,如google 百度之類,支持搜索引擎的爬蟲,根本不用關心問題1,因為有錢。。。至於問題2,搜索引擎的爬蟲,正常網站是不會去禁的。。。。。推薦閱讀:
※python2.7爬蟲中decode("utf-8")出錯該如何解決?
※說郵箱的時候為什麼經常用「#」代替「@」?
※如何抓取url不變的網站數據?
※beautifulsoup與scrapy 這兩者之間有什麼區別?
※selenium 怎樣設置請求頭?