[the information i want to access][1]
[1]: https://i.stack.imgur.com/4SpCU.png
无论我做什么,我都无法访问统计表。我怀疑这与有多张桌子有关,但我不确定。在此处输入代码
var cheerio = require("cheerio");
var axios = require("axios");
axios
.get("https://www.nba.com/players/langston/galloway/204038")
.then(function (response) {
var $ = cheerio.load(response.data);
console.log(
$("player-detail").find("section.nba-player-stats-traditional").find("td:nth-child(3)").text()
);
});
如果打开chrome开发工具(CTRL+SHIFT+J(并切换到网络选项卡并重新加载页面,您可以看到所有正在进行的请求。第一个是在您的axios GET请求中下载的html。如果你点击它,你可以看到HTML与你检查页面时看到的相比是非常基本的。
如果单击"XHR",将显示为获取数据而进行的大多数API调用。"204038_profile.json"有一个有趣的例子。如果你点击它,你可以看到我认为你想要的json格式的信息,这在不解析html表的情况下更容易使用。您可以右键单击"204038_profile.json"并复制完整的url:
https://data.nba.net/prod/v1/2019/players/204038_profile.json
注意:大多数网站都不喜欢你这样使用他们的数据,你可能想检查他们的政策是什么。他们可能会让访问数据或随时更改URL变得更加困难。
你可能想看看这个问题,或者这个关于如何加载页面并运行javascript来模拟浏览器的问题。
第二个特别有趣,它有一个答案,说明如何拦截和变异来自木偶师的请求