【发布时间】:2013-02-22 13:51:35
【问题描述】:
我想从链接http://search.freefind.com/siteindex.html?id=59478474<r=10240&fwr=0&pid=i&ics=1 中删除所有单词 我尝试过这样的事情:
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc = web.Load("http://search.freefind.com/siteindex.html?id=59478474<r=10240&fwr=0&pid=i&ics=1");
HtmlNodeCollection nodes = doc.DocumentNode.SelectNodes("//font[@class='search-index-font']//a");
if (nodes != null)
{
foreach (HtmlNode n in nodes)
{
link = n.InnerText;
my_link.Add(link);
MessageBox.Show(link);
}
}
else
MessageBox.Show("no wordfound ");
我的expexted输出应该像
a
aa
aachhe
aagrashi
aagun
aaj
aam
aanka
aankhi
aar
aashman
abāddhō
abāddhōtā
abadh
..
..
但它不起作用??它显示“找不到单词”意味着它返回 null。在这种情况下,我如何从 标记中获取所有文本??? 谁能告诉我 SelectNodes("") 应该是什么???
【问题讨论】:
-
发生了什么发生了? “它不起作用”并不是一个有助于解决问题的好描述。
-
它显示“找不到单词”......
-
该页面上的标记完全损坏。您正在搜索的块中根本没有打开的
a元素。例如:</script>a</a><br><script>findindexitem('aa');</script>aa</a>- 没有可供 HAP 匹配的<a>。 -
你不能 - 它是无效的 HTML。您将需要使用其他东西。
-
我没有答案。您是否了解加载页面时 HTML 无效,除非 JavaScript 运行? HTML 敏捷包无法执行 JavaScript。因此,要么在 JavaScript 运行后获取 HTML 并将其复制到本地 - 然后针对它运行 HAP,要么使用其他方法。
标签: c# .net xpath html-agility-pack web-scraping