第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

從 HTML 字符串中提取 HREF 值

從 HTML 字符串中提取 HREF 值

C#
梵蒂岡之花 2022-07-23 17:07:22
我正在嘗試創(chuàng)建一個(gè)只返回來自網(wǎng)站的鏈接的爬蟲,并且我讓它返回 HTML 腳本。我現(xiàn)在想使用 if 語(yǔ)句來檢查是否返回了字符串,如果返回,它會(huì)搜索所有“< a >”標(biāo)簽并向我顯示 href 鏈接。但我不知道要檢查什么對(duì)象或應(yīng)該檢查什么值。這是我到目前為止所擁有的:namespace crawler{    class Program    {        static void Main(string[] args)        {            System.Net.WebClient wc = new System.Net.WebClient();            string WebData wc.DownloadString("https://www.abc.net.au/news/science/");            Console.WriteLine(WebData);            // if         }    }        }
查看完整描述

2 回答

?
斯蒂芬大帝

TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊

你可以看看HTML Agility Pack:


然后,您可以從網(wǎng)頁(yè)中找到所有鏈接,例如:


 var hrefs = new List<string>();

 var hw = new HtmlWeb();

 HtmlDocument document = hw.Load(/* your url here */);

 foreach(HtmlNode link in document.DocumentNode.SelectNodes("//a[@href]"))

 {

    HtmlAttribute attribute = link.Attributes["href"];


    if (!string.IsNullOrWhiteSpace(attribute.Value))

        hrefs.Add(attribute.Value);

 }


查看完整回答
反對(duì) 回復(fù) 2022-07-23
?
呼喚遠(yuǎn)方

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超11個(gè)贊

首先,您可以創(chuàng)建一個(gè)函數(shù)來像您所做的那樣返回整個(gè)網(wǎng)站的 HTML 代碼。這是我有的!


public string GetPageContents()

{

    string link = "https://www.abc.net.au/news/science/"

    string pageContent = "";

    WebClient web = new WebClient();

    Stream stream;


    stream = web.OpenRead(link);

    using (StreamReader reader = new StreamReader(stream))

    {

        pageContent = reader.ReadToEnd();

    }

    stream.Close();


    return pageContents;

}

然后你可以創(chuàng)建一個(gè)函數(shù)來返回一個(gè)子字符串或一個(gè)子字符串列表(這意味著如果你想要所有 < a > 標(biāo)簽,你可能會(huì)得到多個(gè)標(biāo)簽)。


List<string> divTags = GetBetweenTags(pageContents, "<div>", "</div>")

這將為您提供一個(gè)列表,例如,您可以在其中再次搜索每個(gè) < div > 標(biāo)記內(nèi)的 < a > 標(biāo)記。


public List<string> GetBetweenTags(string pageContents, string startTag, string endTag)

{

    Regex rx = new Regex(startTag + "(.*?)" + endTag);

    MatchCollection col = rx.Matches(value);


    List<string> tags = new List<string>();


    foreach(Match s in col)

        tags.Add(s.ToString());


    return tags;

}

編輯:哇不知道 HTML Agility Pack,謝謝@Gauravsa 我會(huì)更新我的項(xiàng)目以使用它!


查看完整回答
反對(duì) 回復(fù) 2022-07-23
  • 2 回答
  • 0 關(guān)注
  • 331 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)