我想从 NBA.com、CBSsports.com 和 espn.go.com 等网站的 HTML 网页中检索镜头位置数据集,然后进行一些数据分析。
我的问题是我无法检索我需要的数据,同时在 HTML Agility Pack 的帮助下使用 C# 进行 HTML 抓取。
第一的。例如,这是 2013 年 4 月 7 日 LAL 和 LAC 之间的 CBS 体育比赛跟踪器。链接地址为 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”和“xpos”正是我想要的。
然后我使用 C# 和 HTML Agility Pack 来检索它们。
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 中的错误消息弹出并告诉我“项目引用为空”。
我怎样才能以正确的方式解决这个问题?
第二。另一个问题是在 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 Agility Pack)获取所有 x 和 y 数据,例如“x="385.12" y="218.3404255319149"”?
感谢您的所有想法和帮助:D