我正在使用 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 的内容,但我没有安装这些,所以我更愿意在没有它们的情况下安装它们。所以我的问题有两个方面:
有没有什么办法可以从这个里面的不同页面抓取数据 仅使用 pandas 和标准 Python/SciPy 的 javascript 表 库(准确地说是 Anaconda)?
如果没有,您将如何借助 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/