javascript - 如何使用 Python(最好是 pandas)从 Javascript 表中抓取数据?

标签 javascript python html pandas web-scraping

我正在使用 pandas 从网页中获取一些冰球统计数据,如下所示:

import pandas as pd

url_goal = 'http://www.quanthockey.com/nhl/records/nhl-players-all-time-goals-per-game-leaders.html'
df_goal = pd.read_html(url_goal, index_col=0, header=0)[0]

这很好用,但问题是切换到首页统计表的第二页并没有更改 url,所以我不能使用相同的方法来抓取前 50 名以上的玩家。表中有一个 javascript 地址会随着页码切换而改变。我阅读了一些有关 selenium 和 beautifulsoup 的内容,但我没有安装这些,所以我更愿意在没有它们的情况下安装它们。所以我的问题有两个方面:

  1. 有没有什么办法可以从这个里面的不同页面抓取数据 仅使用 pandas 和标准 Python/SciPy 的 javascript 表 库(准确地说是 Anaconda)?

  2. 如果没有,您将如何借助 selenium 或您选择的软件包将这些数据放入 pandas 数据框中?

最佳答案

提示:在浏览器中打开网络分析器,观察导航到不同页面时发生的情况;你会注意到一个 GET 请求到一个像

这样的页面
http://www.quanthockey.com/scripts/AjaxPaginate.php?cat=Records&pos=Players&SS=&af=0&nat=alltime&st=reg&sort=goals-per-game&page=3&league=NHL&lang=en&rnd=451318572

注意查询字符串的 page 部分。

您可以只遍历与有多少页相对应的数字范围,更改查询字符串 page 参数,每次将其增加一(例如)

关于javascript - 如何使用 Python(最好是 pandas)从 Javascript 表中抓取数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27136249/

相关文章:

javascript - 对行而不是列使用 Google 可视化格式

javascript - Deepstream 是否会跟踪 RethinkDB 中的整个文档?

javascript - 当 JavaScript 值是通过引用而非值复制时,是否有任何经验法则?

python - 动态更新依赖于同一对象其他属性状态的对象属性

javascript - 网站的 jQuery 或 Canvas 屏幕保护程序,网站超时返回屏幕保护程序页面

javascript - 大型应用的回流/布局性能

java - 使用 Java 运行 Python 脚本时出错

python - 如何将 pandas 中的列转换为一个日期时间列?

javascript - Ajax 链接也可以在新选项卡中打开吗? (如 Facebook )

jquery - 更改事件 <li> Bootstrap CSS