国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

C# 網絡編程之webBrowser獲取網頁url和下載網頁中圖片

2019-11-17 02:38:07
字體:
來源:轉載
供稿:網友
C# 網絡編程之webBrowser獲取網頁url和下載網頁中圖片

該文章主要是通過C#網絡編程的webBrowser獲取網頁中的url并簡單的嘗試瞎子啊網頁中的圖片,主要是為以后網絡開發的基礎學習.其中主要的通過應用程序結合網頁知識、正則表達式實現瀏覽、獲取url、下載圖片三個功能.而且很清晰的解析了每一步都是以前一步為基礎實現的.

一.界面設計

界面設計如下圖所示,添加控件如圖,設置webBrowser1其Anchor屬性為Top、Bottom、Left、Right,實現對話框縮放;設置groupBox1其Dock(定義要綁到容器控件的邊框)為Buttom,實現當瀏覽器縮放時groupBox1始終在最下邊;設置listBox其HorizontalScrollbar屬性為True,顯示水平滾動條.

二.源代碼

1.命名空間

//新添加命名空間  using System.Net;  using System.IO;using System.Text.RegularExPRessions;  //正則表達式

2.瀏覽

點擊"瀏覽"按鈕,生成button1_Click(object sender, EventArgs e)點擊事件中添加如下代碼,實現瀏覽網頁:

private void button1_Click(object sender, EventArgs e){    webBrowser1.Navigate(textBox1.Text.Trim());         //顯示網頁}

調用webBrowser的Navigate方法將指定位置的文檔加載到控件中,其中一種重載方法Navigate(urlString)將制定的統一資源定位符URL處的文檔加載到WebBrowser控件中替換上一個文檔.

3.獲取

點擊"獲取"按鈕,生成button2_Click(object sender, EventArgs e)點擊事件中添加如下代碼,通過獲取"html.OuterHtml"當前網頁的HTML內容,利用正則表達式獲取網頁中所有內容的URL超鏈接和圖片的URL,并顯示在listBox控件中.

//定義num記錄listBox2中獲取到的圖片URL個數public int num = 0;//點擊"獲取"按鈕private void button2_Click(object sender, EventArgs e){    HtmlElement html = webBrowser1.Document.Body;      //定義HTML元素    string str = html.OuterHtml;                       //獲取當前元素的HTML代碼    MatchCollection matches;                           //定義正則表達式匹配集合    //清空    listBox1.Items.Clear();    listBox2.Items.Clear();    //獲取    try    {                  //正則表達式獲取<a href></a>內容url        matches = Regex.Matches(str, "<a href=/"([^/"]*?)/".*?>(.*?)</a>", RegexOptions.IgnoreCase);        foreach (Match match in matches)        {            listBox1.Items.Add(match.Value.ToString());             }        //正則表達式獲取<img src=>圖片url        matches = Regex.Matches(str, @"<img/b[^<>]*?/bsrc[/s/t/r/n]*=[/s/t/r/n]*[""']?[/s/t/r/n]*(?<imgUrl>[^/s/t/r/n""'<>]*)[^<>]*?/?[/s/t/r/n]*>", RegexOptions.IgnoreCase);        foreach (Match match in matches)        {            listBox2.Items.Add(match.Value.ToString());        }        //記錄圖片總數        num = listBox2.Items.Count;    }    catch (Exception msg)    {        MessageBox.Show(msg.Message);    //異常處理    }}

其中MatchCollection Regex.Matches(string input,string pattern,RegexOption options)表示使用指定的匹配選項pattern在輸入的字符串中搜索指定正則表達式的所有結果.上面RegexOptions.IgnoreCase表示不區分大小寫匹配.因為下載中我會顯示下載成功結果到listBox2中,所以這里使用num先計算圖片總數.

4.下載

Word-spacing: 0px; white-space: normal; font-size-adju

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 奉节县| 颍上县| 大石桥市| 琼海市| 浮山县| 长海县| 兰考县| 望奎县| 巴林右旗| 邢台市| 井研县| 青岛市| 石嘴山市| 彝良县| 冀州市| 县级市| 元谋县| 林甸县| 寿光市| 开原市| 江北区| 肇庆市| 如东县| 乌恰县| 宝丰县| 綦江县| 银川市| 赤水市| 米易县| 上蔡县| 赣榆县| 易门县| 徐闻县| 高阳县| 清镇市| 墨玉县| 巨鹿县| 房产| 大石桥市| 耿马| 雅安市|