python - 使用 Python 抓取 Ajax

标签 python selenium pyqt4 beautifulsoup screen-scraping

我正在尝试获取该网站表格中的数据,该数据在页面加载后通过 jquery 更新(我有权限):

http://whichchart.com/

我目前使用 selenium 和 beautifulsoup 来获取数据,但是因为这些数据在 html 源中不可见,所以我无法访问它。我试过 PyQt4 但它同样没有得到更新的 html 源代码。

这些值在 firebug 和 chrome 开发人员中可见,那么是否有任何 python 包可以利用它并将其提供给 beautifulsoup?

我不是一个大技术专家,所以理想情况下我想要一个可以在 Python 或下一个最简单的软件类型中运行的解决方案。

我知道我可以通过专有的“屏幕抓取”软件获得它,但那很昂贵。

最佳答案

页面正在进行 AJAX 调用以获取数据到 http://whichchart.com/service.php?action=NewcastleCoal它以 JSON 格式返回值。因此,您可以执行以下操作:

  • 使用urllib通过HTTP获取数据
  • 用json库读取方法解析数据
  • 现在你有一个 python 对象要处理

如果您需要处理 HTML 页面内容,我建议使用像 BeautifulSoup 或 scrapy 这样的库

关于python - 使用 Python 抓取 Ajax,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10440480/

相关文章:

Selenium/Ubuntu 的 PHPUnit fatal error

python-2.7 - 如何使用 PyQT 提示跟随 slider 的处理程序?

python - 在 PyQt4 中使用 PyQtGraph 进行实时绘图

python - 组合表单和 model_formset 出现 NoReverseMatch 错误

python - 属性错误 : 'list' object has no attribute 'split'

维护签名的 Python 装饰器,允许修改文档字符串,并允许可选参数

python - 如何使用 Selenium 单击弹出模式框中的按钮

c# - Selenium:如何通过部分 href 查找元素?

python - 从另一个文件 PyQt4 访问操作按钮

python - django-mptt 中的动态顺序