0

リンクからすべての単語を削除したい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&ltr=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を返すことを意味します。その場合、< a >タグからすべてのテキストを取得するにはどうすればよいですか??? SelectNodes("") に何を入れるべきか教えてもらえますか???

4

4 に答える 4

0

これを試して:

doc.DocumentNode.SelectNodes("//a[@class='search-index-links']");

それ以外の

doc.DocumentNode.SelectNodes("//font[@class='search-index-font']//a");
于 2013-02-22T14:26:47.910 に答える
0

あなたの問題は

doc.DocumentNode.SelectNodes("//font[@class='search-index-font']//a");

herenullに記載されているように、 を返します。

これは、で読み込んだ html に、と等しい属性を持つa要素に要素が存在しないためです。fontclasssearch-index-fontdoc


渡す xpath を変更しSelectNodesて存在するものを選択すると、コードは別のパスを使用します。あなたが何を達成するかを知らなければ、私はこれ以上アドバイスすることはできません.


HAP を使用して有効な html を解析できます。つまり、それを使用してスクリプト要素を識別できます。次に、スクリプトタグの内部テキストを解析して必要なものを抽出するために、何かを手でロールする必要があります。

最終的に必要なのは、ベンガル語の単語のリストです。

于 2013-02-22T14:18:14.353 に答える
0
HtmlWeb web = new HtmlWeb();
HtmlAgilityPack.HtmlDocument doc =
    web.Load("http://search.freefind.com/siteindex.html?id=59478474&ltr=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 ");
于 2013-02-22T14:34:10.480 に答える
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&ltr=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
...
于 2013-02-22T14:55:08.230 に答える