想寫一個爬蟲,可是須要抓去的的數據是js生成的,在源代碼裏看不到,要怎麼才能抓到呢? 最好是用pythonpython
7 個回答
若是對抓取的性能沒有什麼要求的話, 嘗試一下selenium或者watir吧.
web自動化測試腳本用好了能夠作不少事情.
利用你的瀏覽器執行好js, 而後再從dom裏面取數據.git
另一個狀況, 若是你知道js是經過ajax或者api取數據的, 直接去抓數據源, 獲得的不是json就是xml, 而後處理數據吧github
KJ9192012年11月22日回答 |
-
2Felix · 2012年11月23日
http://phantomjs.org/ 更簡單web
-
1cattail · 2012年11月27日 回覆 Felix:
看起來不錯,我之前一直在幻想有沒有記錄鼠標和鍵盤操做,甚至於想動手寫一個,如今居然發現了http://casperjs.org/,怎一個感謝了得!ajax
- 更多評論 (4條)
- 您尚未登陸, 請登陸後添加評論
基於webkit的http://phantomjs.org/,寫js就行。
用python調它,用起來很爽。json
對於JS生成的數據,你是沒有辦法獲取的。除非直接遍歷dom仍是有可能……ubuntu
一種辦法是能夠考慮用userscript,獲取數據而後post到服務器等就隨你本身的喜歡了segmentfault
還有一種辦法(假設是在win32),能夠使用com組件調用IE而後獲取動態生成的dom樹,而後再作處理api
當年試過改firefox的程序來作這個,不過也很麻煩
固然,你也能夠用python什麼本身實現一套瀏覽器和js引擎,那麼這些數據確定是你本身的了,不過還不如直接改或者用com組件
可是你說的爬蟲爬取js生成的,那是沒有辦法的:(無論怎麼樣,必定要實現dom樹,要讓js能執行,那麼就至關於你要實現一套簡單的瀏覽器了
能夠試着用 http://jeanphix.me/Ghost.py/ , http://code.google.com/p/pyv8/ 得到 JS 執行後的 dom。
目前認爲比較好的一個方案是採用python+gtk+pywebkit,至關於基於webkit本身寫一個定製的瀏覽器,這樣能夠在網頁中插入本身的js,遍歷dom等都是很是容易的。這個組合在ubuntu下仍是很是容易搭建的。
sudo apt-get install python-gtk python-webkit,便可。