現在動態網站很普遍,ajax動態內容是在html載入以後,或者是執行用戶的動作以後才顯示。所以,現在的網路爬蟲程序很重要的功能要求就是能爬動態內容,需要有javascript的執行能力


微博這一類的主流網站現在都普遍採用ajax載入數據,也就是如果你通過傳統的爬蟲方式post一個url或者請求參數過去,接受響應的字元串,也就是響應的html代碼,會發現裡面沒有你要的數據,這是因為這個代碼裡面有一些js腳本,等到瀏覽器顯示這個網頁的時候,這些js就會運行,從而顯示你想要看的數據,ajax還用來在你操作的時候不刷新網頁,只載入一部分頁面數據,如果你發現一個網站在你操作的時候只有頁面部分數據在變動,網址不變,就是ajax,這個很容易判斷。另外,如果你發現網頁瀏覽器顯示網頁載入完畢,然後頁面上還有一些數據正在載入,這種數據也屬於ajax非同步載入的。判斷好之後,就要採用能處理ajax的方式抓取數據了。

這裡有兩種方法:
1. 分析ajax腳本,找到對應的載入數據的js腳本,然後分析其邏輯,一般也是生成一個http請求,然後這個http請求一般只返回jason格式的數據。你可以通過代碼模擬這個請求來獲取數據。但是這種辦法比較老土,也很麻煩需要你研究js代碼的邏輯,你如果不會寫代碼就比較麻煩。當然有一些fiddler之類的網頁通信抓包分析工具可以幫你一些忙。

2. 使用現在比較主流的智能採集軟體如八爪魚,需要支持瀏覽器和可視化採集,這樣軟體會自動模擬人的操作完成所有工作,包括運行界面的腳本,最後你會在界面上看到數據,就和上網看網頁沒任何區別,但是此類工具可以自動提取你在網頁上看到的數據。用滑鼠點點就提取到數據了,這種方式適合不懂代碼的人。

3. 當然你也可以上網上找一下別人都是怎麼採集微博數據的。然後拿別人的勞動成果來用,這個就更簡單。比如,我按照你的要求在數多多上搜索微博數據採集規則就出來好多。截圖如下:可以看到有微博賬號,話題,評論,明星等等,別人也都詳細寫了如何用這些東西。

下面是隨便點了第一個進去,這是個採集模板,下載下來運行就可以了。第一個運行時候的截圖如下:

這是下載這些微博採集模板的地址:數多多數據包,大數據共享交易市場平台,支持C2C數據買賣,海量數據下載,數據質量高,與八爪魚數據採集平台無縫對接


因為PC端微博的源碼包裹在了

FM.view((.*))

這個塊中。你需要先用正則表達式把它提取出來,然後就可以拿到頁面的內容了。另外有一些內容是通過ajax動態載入的,比如評論列表、用戶主頁的部分微博數據。我寫了一個分散式的微博爬蟲,其中對微博解析模塊做了大量的工作,可以參考一下

項目地址:ResolveWang/WeiboSpider


應該是採用ajax輸出內容,爬蟲無法獲取量小的話可以採用微薄介面獲取對應的數據http://open.weibo.com/wiki/%E9%A6%96%E9%A1%B5
考慮能運行JS的爬蟲


額。。不用圍脖。可能是ajax獲取來的信息。這樣的話,你用firebug或者chrome的查看Elements就能看到了。
先看看API就什麼都懂了


推薦閱讀:
相关文章