如何用python抓取js生成的数据

想写一个爬虫,但是需要抓去的的数据是js生成的,在源代码里看不到,要怎么才能抓到呢? 最好是用python

阅读 42.9k
评论 2012-11-22 提问
    7 个回答
    • 1.1k

    如果对抓取的性能没有什么要求的话, 尝试一下selenium或者watir吧.
    web自动化测试脚本用好了可以做很多事情.
    利用你的浏览器执行好js, 然后再从dom里面取数据.

    另外一个情况, 如果你知道js是通过ajax或者api取数据的, 直接去抓数据源, 得到的不是json就是xml, 然后处理数据吧

        对于JS生成的数据,你是没有办法获取的。除非直接遍历dom还是有可能……

        一种办法是可以考虑用userscript,获取数据然后post到服务器等就随你自己的喜欢了

        还有一种办法(假设是在win32),可以使用com组件调用IE然后获取动态生成的dom树,然后再做处理

        当年试过改firefox的程序来做这个,不过也很麻烦

        当然,你也可以用python什么自己实现一套浏览器和js引擎,那么这些数据肯定是你自己的了,不过还不如直接改或者用com组件

        但是你说的爬虫爬取js生成的,那是没有办法的:(不管怎么样,一定要实现dom树,要让js能执行,那么就相当于你要实现一套简单的浏览器了

            • 91

            目前认为比较好的一个方案是采用python+gtk+pywebkit,相当于基于webkit自己写一个定制的浏览器,这样可以在网页中插入自己的js,遍历dom等都是非常容易的。这个组合在ubuntu下还是非常容易搭建的。
            sudo apt-get install python-gtk python-webkit,即可。

              • 1
              • 新人请关照
                撰写回答

                登录后参与交流、获取后续更新提醒