使用Python使用AJAX抓取网页

Hei*_*erg 0 javascript python ajax

我知道使用Python的Beautiful Soup抓取HTML的基础知识.但是,这个足球统计页面会进行AJAX调用,以获取玩家在几分钟内播放的数据.(我使用firebug确定了网络呼叫).

我的问题:是否有可能使用python"刮"这些信息?我需要哪些工具以及HTML以外的其他工具?(我目前正在阅读JavaScript和AJAX).

我为这个非特定问题道歉,但我甚至不知道谷歌如何处理可能存在或可能不存在的工具.

更新:几天后,我想出了一个使用SeleniumPython结合的解决方案PhantomJS.我基本上习惯Selenium去每个链接,等待页面加载,然后抓取信息.PhantomJS作为无头网络驱动程序Selenium.

我理解为什么mods要关闭它,但人们给我这里的建议非常有帮助,因为他们让我朝着正确的方向前进.我的问题不是关于什么工具最好,而是更多关于如何在Python中做到这一点.

Anu*_*yal 5

使用python是不必要的,并且在许多情况下不起作用,最好的方法是运行适当的浏览器并使用javascript来完成所有的抓取,因为它可以访问整个DOM,甚至可以绑定到事件.

有很多很好的无头浏览器都有脚本支持,我最喜欢的是PhantomJS,你可以用它来加载网页并抓取它们或将它们保存为图像,例如

var page = require('webpage').create();
page.open('http://github.com/', function () {
    page.render('github.png');
    phantom.exit();
});
Run Code Online (Sandbox Code Playgroud)

但是后来有一些基于PhantomJS的抓取框架,例如pjscrape