当使用c#和HTML敏捷包时,无法从NBA.com检索投篮位置数据
本文关键字:com NBA 检索 置数据 位置 HTML 包时 | 更新日期: 2023-09-27 18:08:03
我想从NBA.com, CBSsports.com和espn.go.com等网站的HTML网页中检索投篮位置数据集,然后做一些数据分析。
我的问题是我无法检索我需要的数据,而使用c#在HTML Agility Pack的帮助下进行HTML抓取。
。例如,以下是CBS体育频道2013年4月7日LAL和LAC的比赛追踪器。链接地址为,http://www.cbssports.com/nba/gametracker/live/NBA_20130407_LAL@LAC。
我尝试捕捉球场图上那些红色x点和绿色O点的x和y坐标值。
(很抱歉,由于声誉有限,我不能在这里发布图片)
Safari网页检查器用于随机获取其中一个点。它表明,
<div class="homeShot made" playerid="555969" period="1" type="1" ypos="-17" xpos="-1" result="1" time="4:37" distance="25" style="right: 165.53191489361703px; top: 161.6px; "></div>
注意到HTML中的" ypos "answers" xpos "正是我想要的。
然后我用c#和HTML敏捷包来检索它们。
c#代码: string link = "http://www.cbssports.com/nba/gametracker/live/NBA_20130407_LAL@LAC";
HtmlWeb hw = new HtmlWeb();
HtmlDocument doc = hw.Load(link);
HtmlNodeCollection items = doc.DocumentNode.SelectNodes("//div[@class= 'homeShot made']");
foreach (HtmlNode item in items)
{
// blablabla
}
但是在visual studio中弹出错误消息,告诉我"items reference是null"。
我如何以正确的方式修复它?
。另一个问题是在NBA.com上。(很抱歉,由于信誉有限,我不能发布第二个链接)
同样,Safari网页检查器被用来随机获得红色和绿色的点之一。它表明,
<image x="385.12" y="218.3404255319149" width="16" height="16" preserveAspectRatio="none" href="/media/shotchart_legend_o.png"></image>
我注意到它在SVG中是有界的
<svg height="613" version="1.1" width="652" xmlns="http://www.w3.org/2000/svg" style="overflow: hidden; position: relative; ">...</svg>
我如何使用c#(有或没有HTML敏捷包)来获得所有的x和y数据,如"x="385.12"y="218.3404255319149"?
D你给的链接返回的HTML没有任何div class= 'homeShot made'里面。如果使用浏览器检查HTML,那么查看的是DOM在内存中的表示形式,而不是文件的内容。Html敏捷包只处理原始的Html输入,它不是一个浏览器。
如果你做一个视图源,你可以确认。
所以,如果内容是由一些javascript代码构建的,你必须使用嵌入式浏览器控件,而不是静态工具,如Html Agility Pack