如何用python抓取js生成的数据
想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓到呢? 最好是用python
224
2012年11月22日提问
- 您还没有登录, 请后添加评论
7 个回答
采纳如果对抓取的性能没有什么要求的话, 尝试一下selenium或者watir吧.
web自动化测试脚本用好了可以做很多事情. 利用你的浏览器执行好js, 然后再从dom里面取数据.另外一个情况, 如果你知道js是通过ajax或者api取数据的, 直接去抓数据源, 得到的不是json就是xml, 然后处理数据吧
919
2012年11月22日回答
2· 2012年11月23日更简单
1· 2012年11月27日 回复 :看起来不错,我以前一直在幻想有没有记录鼠标和键盘操作,甚至于想动手写一个,现在竟然发现了,怎一个感谢了得!
- 您还没有登录, 请后添加评论
采纳基于webkit的,写js就行。
用python调它,用起来很爽。
48
2012年11月23日回答
- 您还没有登录, 请后添加评论
采纳对于JS生成的数据,你是没有办法获取的。除非直接遍历dom还是有可能……
一种办法是可以考虑用userscript,获取数据然后post到服务器等就随你自己的喜欢了
还有一种办法(假设是在win32),可以使用com组件调用IE然后获取动态生成的dom树,然后再做处理
当年试过改firefox的程序来做这个,不过也很麻烦
当然,你也可以用python什么自己实现一套浏览器和js引擎,那么这些数据肯定是你自己的了,不过还不如直接改或者用com组件
但是你说的爬虫爬取js生成的,那是没有办法的:(不管怎么样,一定要实现dom树,要让js能执行,那么就相当于你要实现一套简单的浏览器了
120
2012年11月22日回答
- 您还没有登录, 请后添加评论
采纳可以试着用 , 获得 JS 执行后的 dom。
16
2012年11月22日回答
- 您还没有登录, 请后添加评论
采纳目前认为比较好的一个方案是采用python+gtk+pywebkit,相当于基于webkit自己写一个定制的浏览器,这样可以在网页中插入自己的js,遍历dom等都是非常容易的。这个组合在ubuntu下还是非常容易搭建的。
sudo apt-get install python-gtk python-webkit,即可。
58
2012年11月22日回答
- 您还没有登录, 请后添加评论
采纳
1
2012年11月27日回答
- 您还没有登录, 请后添加评论
采纳
1
2013年12月01日回答