㈠ 如何「爬數據」
簡單籠統的說,爬數據搞定以下幾個部分,就可以小打小鬧一下了。
一、指定URL的模式,比如知乎問題的URL為http://hu.com/question/xxxx,然後抓取html的內容就可以了。用的工具,如果你正則很好,可以用正則,覺得正則費腦子的,可以用html解析DOM節點來處理內容。如果你抓取的內容有其固有特點,如新聞內容,可以用正文抓取演算法,其實就是找html中最長的幾行字元串。
二、用javascript動態生成內容的抓取,不建議使用headless,效率比較低下,建議使用一些開源的庫去直接執行js代碼,獲得你想要的結果。
了解頁面里的程序邏輯是很重要的,知道動態內容是怎麼生成的,使用一定的方法,一樣會像拿html一樣,很容易的拿到你想要的結果。動態生成要麼是本地執行計算,要麼是從伺服器另發起請求獲得一定的結果,顯示或再進行本地計算。對前者,你要找到他本地執行的那段代碼,原樣拿過來,在javascript環境執行一遍拿到結果。對後者,找到那個請求,獲得對應的結果,一般這個結果也會是javascript代碼或者json格式的字元串,重新解析即可。
三、登錄,有很多數據你是需要登錄後才能查看的。如果對方使用https,基本就無解了。好在很多國內標榜全站使用https的網站都是偽https,抓包一樣全都可以抓到,比較復雜的會將用戶名或密碼進行二次加密,並且和時間相關,直接提交用戶名密碼是無效的,必須同時提交以當前時間為參數進行二次加密後的結果,還是那句話,了解頁面里的程序邏輯是很重要的。
四、驗證碼,你抓取過多過快時,網站一般會要求你輸入驗證碼證明你不是程序,是人工在操作,似乎國內有幫你輸入驗證碼的雲服務,來搞定這部分,或者用程序解析驗證碼,但錯誤率太高。還有一種比較無賴的方法就是使用多條ADSL或VPN,來回切換IP,不斷換IP進行抓取,把單IP抓取速度控制在網站允許的范圍內,另外什麼換header頭里的agent啥的比較簡單,就不多說了。
五、內容圖片化,一些敏感信息,如商城裡的價格,分類網站里的用戶手機號,會被網站直接用圖片的方式進行顯示。這里你使用雲服務成本太高,使用程序解析圖片,如果出錯,這條信息基本就沒用了,切換IP也一樣是圖片,所以基本也是無解的。
六、補充,爬蟲還有很多細節和針對性的處理方法,出於學習的目的,要多思考,比如移動互聯網這么火熱,很多網站,有點實力的都會出移動客戶端,在移動客戶端內,他還是使用圖片顯示嗎?現在html5出來了,很多移動客戶端都是html+js進行再封裝處理的。
㈡ POI是什麼如何使用
POI
中國POI(Point of Interest)資料庫
什麼是POI?
POI是「Point of Interest」的縮寫,可以翻譯成「興趣點」吧,每個POI包含四方面信息,名稱、類別、經度、緯度。
這個計劃的遠景目標是建立全國的POI資料庫,並且全部開放。
目前POI資料庫計劃已經發布有北京市區POI數據16000條,全國村鎮POI數據8萬余條。全國其它地區的POI數據正在搜集整理中,同時還有一個全國公路收費站POI數據的計劃也在進行。
一、道路收費站標注計劃
1 估計總數據量:目前全國總共有2000多個路橋收費站,其中廣東有418個,居全國之首。點這里看詳情...
2 估計完成時間:2004年6月30日。
3 適用機型:根據我們目前掌握的技術,這些數據可以作為地圖的一部分用於任何能載入自製地圖的GPS上,比如GARMIN、MAGELLAN的手持GPS。對沒有地圖功能或者自己無法上載地圖的GPS,可以作為航點(WAYPOINT)上傳,GPS手持機一般都有至少500航點的存儲能力,足以應付日常用途。
4 數據提供模式:
融合到拼音版地圖中。有GARMIN、MAGELLAN兩種格式。
OZI航點文件格式。每個省的收費站作為一個單獨的WAYPOINT文件,可以分別上傳到GPS上。
MAPINFO交換文件格式,也以省為單位劃分成獨立的文件,方便用於其它場合。
5 數據更新周期:每周更新一次。
6 項目起因:
平常行車,最花錢的部分就是道路通行費,甚至高達油錢的3倍。不僅高速公路收費,就連國道省道縣道也收費,收費標准甚至高於高速公路。「貸款修路,收費還貸」成了想方設法收費的「理由」。違規設立道路收費站、出讓道路收費權、延長道路收費期限等現象在全國屢見不鮮。道路高收費也是超載現象產生的根源之一。我們個人無法改變這種現狀,走不起只能繞過去。要避開這些國道收費點,在GPS普及之前是個相當困難的問題,因為那些地方我們可能一輩子也就去那麼一兩次,看到收費站的時候,就算想繞道,恐怕都不知道該走哪條路繞。而對當地人來說,凡是有收費站的地方,一定就有小路繞行。有個朋友說,「國道進天津收費20,我提前左轉彎,多開3公里,就躲過去了,至今最少已經節約了幾百塊」。集合大家的力量,把全國范圍的道路收費站確切位置標注出來,善莫大焉。當然,最好能同時提供繞行路線,並標注繞行的代價,比如多繞的距離、路面質量以及需要注意的地方。
7 參與方式:
這個項目的特點決定了這是一個需要全國GPS愛好者共同參與才能作好的項目,對每一個參與者來說,不用花費多少時間,只要在路過收費站的時候,在GPS上打個點(WAYPOINT),然後將這個點的坐標、所在道路、收費站名稱、收費起止時間、收費標准等信息發EMAIL給俺,當然如果有GPS軌跡形式或者ROUTE形式的繞行路線就更理想了。俺的郵箱在網站首頁,來信的時候請在標題中帶上「POI」三個字母。
希望對這個項目有興趣的朋友將這個項目推薦給別的GPS愛好者,大家共同努力,盡快完成這個項目。
二、全國POI數據
目前正在整理、搜集、製作更多的POI數據,將會陸續發布。對此事有興趣的朋友請根據首頁聯系方法隨時與兄弟聯系。
1. 北京市區POI資料庫
這個資料庫包含了北京城區的16000多個POI數據,POI名稱有漢字和拼音兩種版本,這些POI數據可以傳輸到GPS中,前提條件是GPS支持POI或者地圖。支持POI的手持GPS有Magellan GPS315/320系列,比如GPS315可以儲存18220個POI數據(僅限英文版。兄弟測試過中文版315,無法上傳POI數據)。常見的支持上傳地圖的手持GPS有Garmin eTrex系列的Legend和Vista,Magellan的Meridian系列和Sportrak系列。對地圖機來說,POI數據可以作為地圖,因此只要地圖機的內存允許,就可以添加任意數量的POI。