C#.Net基于正則表達(dá)式抓取百度百家文章列表的方法示例
本文實(shí)例講述了C#.Net基于正則表達(dá)式抓取百度百家文章列表的方法。分享給大家供大家參考,具體如下:
工作之余,學(xué)習(xí)了一下正則表達(dá)式,鑒于實(shí)踐是檢驗(yàn)真理的唯一標(biāo)準(zhǔn),于是便寫了一個(gè)利用正則表達(dá)式抓取百度百家文章的例子,具體過程請(qǐng)看下面源碼:
一、獲取百度百家網(wǎng)頁內(nèi)容
public List<string[]> GetUrl() { try { string url = "http://baijia.baidu.com/"; WebRequest webRequest = WebRequest.Create(url); WebResponse webResponse = webRequest.GetResponse(); StreamReader reader = new StreamReader(webResponse.GetResponseStream()); string result = reader.ReadToEnd(); reader.Close(); webResponse.Close(); return AnalysisHtml(result); } catch (Exception ex) { throw ex; } }
二、通過正則表達(dá)式篩選
public List<string[]> AnalysisHtml(string htmlContent) { List<string[]> list = new List<string[]>(); string strPattern = "<h3><a\\s*.*>(?<Title>[^<]+)</a></h3>.*\\s*<p\\s*class=\"feeds-item-text\">(?<Abstract>[^<]+)<a\\s*href=\"(?<Url>.*)\"\\s*target=\"_blank\"\\s*class=\"feeds-item-more\"\\s*mon=\".*\\s*\">.*\\s*</a></p>"; Regex regex = new Regex(strPattern, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); if (regex.IsMatch(htmlContent)) { MatchCollection matchCollection = regex.Matches(htmlContent); foreach (Match match in matchCollection) { string[] str = new string[3]; str[0] = match.Groups[1].Value;//獲取到的是列表數(shù)據(jù)的標(biāo)題 str[1] = match.Groups[2].Value;//獲取到的是內(nèi)容 str[2] = match.Groups[3].Value;//獲取到的是鏈接到的地址 list.Add(str); } } return list; }
附:完整實(shí)例代碼點(diǎn)擊此處本站下載。
PS:這里再為大家提供2款非常方便的正則表達(dá)式工具供大家參考使用:
JavaScript正則表達(dá)式在線測試工具:
http://tools.jb51.net/regex/javascript
正則表達(dá)式在線生成工具:
http://tools.jb51.net/regex/create_reg
更多關(guān)于C#相關(guān)內(nèi)容感興趣的讀者可查看本站專題:《C#正則表達(dá)式用法總結(jié)》、《C#編碼操作技巧總結(jié)》、《C#常見控件用法教程》、《WinForm控件用法總結(jié)》、《C#數(shù)據(jù)結(jié)構(gòu)與算法教程》、《C#面向?qū)ο蟪绦蛟O(shè)計(jì)入門教程》及《C#程序設(shè)計(jì)之線程使用技巧總結(jié)》
希望本文所述對(duì)大家C#程序設(shè)計(jì)有所幫助。
上一篇:C#多線程之線程控制詳解
欄 目:C#教程
下一篇:C#窗體控件DataGridView常用設(shè)置
本文標(biāo)題:C#.Net基于正則表達(dá)式抓取百度百家文章列表的方法示例
本文地址:http://mengdiqiu.com.cn/a1/C_jiaocheng/5533.html
您可能感興趣的文章
- 01-10C#.NET實(shí)現(xiàn)網(wǎng)頁自動(dòng)登錄的方法
- 01-10基于C#實(shí)現(xiàn)簡單離線注冊碼生成與驗(yàn)證
- 01-10C#基于UDP實(shí)現(xiàn)的P2P語音聊天工具
- 01-10C#實(shí)現(xiàn)基于加減按鈕形式控制系統(tǒng)音量及靜音的方法
- 01-10C#正則表達(dá)式的6個(gè)簡單例子
- 01-10C#.NET中如何批量插入大量數(shù)據(jù)到數(shù)據(jù)庫中
- 01-10C#中的正則表達(dá)式介紹
- 01-10C#.Net ArrayList的使用方法
- 01-10C#基于WebBrowser獲取cookie的實(shí)現(xiàn)方法
- 01-10C#基于委托實(shí)現(xiàn)多線程之間操作的方法


閱讀排行
本欄相關(guān)
- 01-10C#通過反射獲取當(dāng)前工程中所有窗體并
- 01-10關(guān)于ASP網(wǎng)頁無法打開的解決方案
- 01-10WinForm限制窗體不能移到屏幕外的方法
- 01-10WinForm繪制圓角的方法
- 01-10C#實(shí)現(xiàn)txt定位指定行完整實(shí)例
- 01-10WinForm實(shí)現(xiàn)仿視頻 器左下角滾動(dòng)新
- 01-10C#停止線程的方法
- 01-10C#實(shí)現(xiàn)清空回收站的方法
- 01-10C#通過重寫Panel改變邊框顏色與寬度的
- 01-10C#實(shí)現(xiàn)讀取注冊表監(jiān)控當(dāng)前操作系統(tǒng)已
隨機(jī)閱讀
- 01-10SublimeText編譯C開發(fā)環(huán)境設(shè)置
- 01-11Mac OSX 打開原生自帶讀寫NTFS功能(圖文
- 01-11ajax實(shí)現(xiàn)頁面的局部加載
- 01-10使用C語言求解撲克牌的順子及n個(gè)骰子
- 01-10delphi制作wav文件的方法
- 04-02jquery與jsp,用jquery
- 08-05dedecms(織夢)副欄目數(shù)量限制代碼修改
- 01-10C#中split用法實(shí)例總結(jié)
- 08-05DEDE織夢data目錄下的sessions文件夾有什
- 08-05織夢dedecms什么時(shí)候用欄目交叉功能?