【发布时间】:2010-10-21 03:26:09
【问题描述】:
我刚刚开始从网页上抓取基本文本,目前正在使用 HTMLAgilityPack C# 库。我在从竞争对手.yahoo.com 获得的 boxscores 上取得了一些成功(体育是我的事,所以为什么不抓取一些有趣的东西呢?)但我被困在 NHL 的游戏摘要页面上。我认为这是一个有趣的问题,所以我会在这里发布。
我正在测试的页面是: http://www.nhl.com/scores/htmlreports/20102011/GS020079.HTM
乍一看,它似乎是基本文本,没有 ajax 或其他东西来搞乱基本的爬虫。然后我意识到由于一些javascript,我无法右键单击,所以我解决了这个问题。我在firefox中右键单击并使用XPather获取主队的xpath,我得到:
/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 找不到它。有没有人在页面的源代码中看到任何可能阻止我的奇怪之处?
我是新手,仍在学习人们如何阻止我抓取,任何提示或技巧都非常感谢!
附言我遵守所有关于机器人等的网站规则,但我注意到这种奇怪的行为并将其视为一项挑战。
【问题讨论】:
-
很好,感谢有关 XPather 的提示,将不得不使用。
-
其他人可以到该页面并尝试获取主队的 xpath(右上角的哥伦布)并将其粘贴到此处以便我进行比较吗?
标签: c# screen-scraping html-agility-pack web-scraping