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

时间:2014-11-25 20:39:19

标签: javascript python html pandas web-scraping

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

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]

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

  1. 有没有办法从这里的不同页面中获取数据 javascript表仅使用pandas和标准Python / SciPy 图书馆(确切地说是Anaconda)?

  2. 如果没有,您会如何在selenium或您选择的包装的帮助下将这些数据转换为pandas数据框?

1 个答案:

答案 0 :(得分:3)

提示:在浏览器中打开网络分析器,观察导航到不同页面时会发生什么;您会注意到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参数,每次增加一个(例如)