HTML Agility Pack - 過濾Href值結果

c# html-agility-pack web-scraping

我正在研究一個網絡刮刀。以下文本顯示了此問題末尾給出的代碼的結果,該代碼獲取了頁面中所有href的值。

我只想獲得包含docid=

的index.php?的pageid = a45475a11ec72b843d74959b60fd7bd64556e8988583f

summary_of_documents.php

的index.php?的pageid = a45475a11ec72b843d74959b60fd7bd64579b861c1d7b

的index.php?的pageid = a45475a11ec72b843d74959b60fd7bd64579e0509c7f0&apform =司法機關

decisions.php?doctype =決定/簽署的決議和docid = 1263778435388003271 #sam

decisions.php?doctype =決定/簽署的決議和docid = 12637789021669321156 #sam

?doctype =決定/簽署的決議和年份= 1986年和月份= 1月#head

?doctype =決定/簽署的決議和年份= 1986年和月份= 2月#head

這是代碼:

        string url = urlTextBox.Text;
        string sourceCode = Extractor.getSourceCode(url);

        HtmlAgilityPack.HtmlDocument doc = new HtmlAgilityPack.HtmlDocument();
        doc.LoadHtml(sourceCode);
        List<string> links = new List<string>();

        if (links != null)
        {
            foreach (HtmlAgilityPack.HtmlNode nd in doc.DocumentNode.SelectNodes("//a[@href]"))
            {
                links.Add(nd.Attributes["href"].Value);
            }
        }
        else
        {
            MessageBox.Show("No Links Found");
        }

        if (links != null)
        {
            foreach (string str in links)
            {
                richTextBox9.Text += str + "\n";
            }
        }
        else
        {
            MessageBox.Show("No Link Values Found");
        }

我怎樣才能做到這一點?

一般承認的答案

為什麼不直接替換它:

links.Add(nd.Attributes["href"].Value);

有了這個:

links.Add(nd.Attributes["href"].Value);



許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因
許可下: CC-BY-SA with attribution
不隸屬於 Stack Overflow
這個KB合法嗎? 是的,了解原因