C# 清除.HTM文件时出现问题
我刚刚开始从网页上删除基本文本,目前正在使用HTMLAgilityPack C#库。我在竞争对手雅虎的boxscores网站上取得了一些成功(体育是我的事情,为什么不做一些有趣的事情呢?),但我被NHL的游戏摘要页面卡住了。我认为这是一个有趣的问题,所以我会把它贴在这里 我正在测试的页面是: 乍一看,它似乎是基本的文本,没有ajax或其他东西来搞乱一个基本的刮刀。然后我意识到由于一些javascript,我不能右键单击,所以我解决了这个问题。我在firefox中右键单击并使用XPather获取主队的xpath,我得到:C# 清除.HTM文件时出现问题,c#,screen-scraping,html-agility-pack,web-scraping,C#,Screen Scraping,Html Agility Pack,Web Scraping,我刚刚开始从网页上删除基本文本,目前正在使用HTMLAgilityPack C#库。我在竞争对手雅虎的boxscores网站上取得了一些成功(体育是我的事情,为什么不做一些有趣的事情呢?),但我被NHL的游戏摘要页面卡住了。我认为这是一个有趣的问题,所以我会把它贴在这里 我正在测试的页面是: 乍一看,它似乎是基本的文本,没有ajax或其他东西来搞乱一个基本的刮刀。然后我意识到由于一些javascript,我不能右键单击,所以我解决了这个问题。我在firefox中右键单击并使用XPather获取
/html/body/table[@id='MainTable']/tbody/tr[1]/td/table[@id='StdHeader']/tbody/tr/td/table/tbody/tr/td[3]/table[@id='Home']/tbody/tr[3]/td
当我试图获取该节点/内部文本时,htmlagilitypack将找不到它。是否有人在页面的源代码中看到任何可能阻止我的奇怪内容
我是新来的,仍然在学习人们如何阻止我刮,任何提示或技巧都非常感谢
p、 我遵守所有关于机器人等的网站规则,但我注意到了这种奇怪的行为,并将其视为一种挑战。好的,看来我的XPath中有tbody。当我从xpath中手动删除这些TBody时,HTMLAgilityPack可以很好地处理它
我仍然想知道为什么会得到无效的xpath,但现在我已经回答了我的问题。我认为除非我的xpath知识有很多缺陷(可能),否则问题在于xpath表达式中的/tbody节点 当我这样做的时候
string test = string.Empty;
StreamReader sr = new StreamReader(@"C:\gs.htm");
HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
doc.Load(sr);
sr.Close();
sr = null;
string xpath = @"//table[@id='Home']/tr[3]/td";
test = doc.DocumentNode.SelectSingleNode(xpath).InnerText;
那很好。。返回一个“哥伦布蓝杰克5号主场比赛3”
我希望这是你想要的绳子
检查html时,我找不到/tbody。nice,感谢关于XPather的提示,我将不得不使用它。其他人是否可以转到该页面,尝试为主队(右上角的columbus)获取xpath并粘贴到这里,以便我进行比较?可能与浏览器或XPather应用程序相关,我将检查它听起来很有趣。