想写一个爬虫,可是须要抓去的的数据是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,便可。