【问题标题】:Python Scrape Website loading JS [closed]Python Scrape网站加载JS [关闭]
【发布时间】:2018-03-19 13:55:51
【问题描述】:

我对 python 和编程很陌生,但我参加了一些课程来提高我的知识。学习时记住一个“目标”似乎非常重要,我的一个目标就是成功地抓取和操纵体育数据。

我想从https://www.britishhorseracing.com/racing/results/ 抓取结果,但它看起来像是通过 JS 动态加载数据:

这里看起来有很多数据,结果可以追溯到大约 20 年前,以及当天每个赛马场的多场比赛。根据我的阅读,selenium 和 beautifulsoup 可能会在这里提供一些解决方案,但在我开始试验之前,我想和你们核实一下这个目标有多现实/是否可以通过网站如何构建数据以及一些关于如何实现的指针来实现开始?

任何帮助将不胜感激。

谢谢

【问题讨论】:

  • 是的,selenium 和 beautifulsoup 将使这些数据相当容易提取。浏览一些教程并尝试一下。
  • 我建议从更小/更简单的项目开始,然后扩展,也许你自己创建一个小 html 网站并尝试先抓取它

标签: javascript python


【解决方案1】:

我对 Selenium 或 BeautifulSoup 不太熟悉,但还有其他与 JavaScript 相关的网络爬虫。我知道的一些是 NightmareJS、PhantomJS 和 ZombieJS(所有与恐怖有关的哈哈)。 NightmareJS 使用电子 Chromium 实例,PhantomJS 是 selenium 的 javascript 包装器,zombiejs 是原始节点解决方案。我个人会推荐使用 NightmareJS。

但是,如果您需要在完全不同的球场上运行 NightmareJS。 NightmareJS 要求有图形界面。然而,有些模块允许 NightmareJS 在终端实例上运行。如果宁愿避免这种情况,那么您应该可以在服务器上安装 PhantomJS 并使用它。

对于 nightmare JS,有一个滚动选项可能会触发其余数据的加载。

Here is an issue found of github. Some solutions are provided there.

如果您仍想使用 selenium 或 python 之类的东西,I'm pretty sure there ought to be some documentation describing how to scroll a page

我原本想说的是,您可以通过查看开发人员网络工具来使用 BHA 所做的 API 网络调用,但是快速查看 API 您需要对 API 进行一些身份验证。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-08-28
    • 2017-06-08
    • 1970-01-01
    • 2016-01-20
    • 2012-12-08
    • 1970-01-01
    • 1970-01-01
    • 2019-12-14
    相关资源
    最近更新 更多