python爬取js_python如何爬取js生成的数据?

回答中有童鞋说到了分析接口,直接爬接口,这是可行的,并且直接爬接口还不需要自己解析HTML了,因为大部分接口返回的都是json,想想都觉得开心呀~

不过还是有别的方法,例如使用Phantomjs,简单易用,Python并非全能,搭配其他工具会发挥更大的价值,我自己也有一些小项目是这样的组合。

这是官方的一个实例代码,稍加改造就可以达成目的了。

console.log('Loading a web page');

var page = require('webpage').create();

var url = 'http://phantomjs.org/';

page.open(url, function (status) {

//Page is loaded!

phantom.exit();

});

改造下

var page = require('webpage').create();

var url = 'http://phantomjs.org/';

page.open(url, function (status) {

page.evaluate(function() {

// 页面被执行完之后,一般js生成的内容也可以获得了,但是Ajax生成的内容则不一定

document.getElementById('xxx'); // 可以操作DOM,这里你就可以尝试获取你想要的内容了

// ...

})

phantom.exit();

});

但其实很多情况下,都是需要等待Ajax执行完毕后才开始解析页面的内容,这时候可以使用官方提供的一个示例代码,利用这个函数,可以等待这个页面所有的请求都加载完毕之后再接着处理,那么你就可以获得完整加载的页面了,之后该干嘛干嘛了。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值