我想废弃链接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 ");
我的经历输出应该
a
aa
aachhe
aagrashi
aagun
aaj
aam
aanka
aankhi
aar
aashman
abāddhō
abāddhōtā
abadh
..
..
但它不起作用?它显示“找不到单词”表示它返回null。如何从&lt;中获取所有文本? a&gt;在那种情况下标签??? 任何人都可以告诉我SelectNodes应该是什么(“”)???
答案 0 :(得分:0)
你的问题是
doc.DocumentNode.SelectNodes("//font[@class='search-index-font']//a");
返回null
,记录为here。
这是因为a
元素中没有font
元素,class
属性等于search-index-font
中加载的html doc
。
如果您更改传递给SelectNodes
的xpath以选择存在的内容,那么您的代码将采用不同的路径。不知道你要达到什么目的,我无法进一步提出建议。
您可以使用HAP来解析有效的html,即使用它来识别脚本元素。然后你必须手动滚动一些东西来解析脚本标签的内部文本,以提取你想要的东西。
最终,你想要的是孟加拉语单词列表。
答案 1 :(得分:0)
试试这个:
doc.DocumentNode.SelectNodes("//a[@class='search-index-links']");
而不是
doc.DocumentNode.SelectNodes("//font[@class='search-index-font']//a");
答案 2 :(得分:0)
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']");
string link = string.Empty;
if (nodes != null)
{
foreach (var item in nodes)
{
var value =
item.Elements("script").ToList();
foreach (var items in value)
{
link += items.NextSibling.InnerText+ "\n";
}
}
MessageBox.Show(link);
}
else
MessageBox.Show("no wordfound ");
答案 3 :(得分:0)
您需要在<script>
内<a>
标记(不是<font class='search-index-font'>
标记后)搜索下一个文本节点。这个xpath表达式可以解决这个问题:
//font[@class='search-index-font']/script/following-sibling::text()[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']/script/following-sibling::text()[1]");
将返回您需要的文本节点:
a
aa
aachhe
aagrashi
aagun
aaj
aam
aanka
aankhi
aar
...