Python爬虫。解析并执行ajax

2 投票
1 回答
2382 浏览
提问于 2025-04-17 11:05

我现在有一个基本的爬虫结构,已经在一些用PHP做的网站上运行得很好。不过我想让它能够从AJAX内容中生成数据表。

目前我在用Python和Perl的Mechanize来构建我的爬虫。但是,Mechanize这个模块不能执行AJAX请求。我该怎么获取那些通过异步AJAX生成的内容呢?

我知道有一个叫Selenium的东西,它可以用来自动化真实浏览器。但这难道是我唯一的选择吗?

1 个回答

1

你可以使用一个无头浏览器,比如phantomjs,它能理解JavaScript、DOM等内容。不过,你需要用JavaScript来写代码,优点是你可以随心所欲地做任何事情。

还有另一种方法,但有点麻烦

你可以观察当你点击按钮时,浏览器发出了哪些请求(可以用Firefox中的Firebug或者Chrome中的开发者工具)。然后尝试逆向工程页面背后运行的JavaScript,看看能不能用你的Python代码做类似的事情。为此,你可以看看Spidermonkey

撰写回答