婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 利用正則表達式抓取博客園列表數(shù)據(jù)

利用正則表達式抓取博客園列表數(shù)據(jù)

熱門標簽:地圖標注字母的軟件 css百度地圖標注位置顯示 400免費電話去哪申請 實用地圖標注app 鄂州人工智能電銷機器人軟件 地圖標注商戶中心要收錢多少 宿遷智能外呼系統(tǒng)供應(yīng)商 線上教育ai外呼系統(tǒng) 菏澤智能ai電銷機器人銷售公司

鑒于我在要完成的asp.net MVC 3 仿照博客園企業(yè)系統(tǒng)要用到測試數(shù)據(jù),我自己輸入太累,所以我就抓取了博客園的部分列表數(shù)據(jù),還請dudu不要見怪。

在抓取博客園數(shù)據(jù)的時候采用了正則表達式,所以有不熟悉正則表達式的朋友可以參考相關(guān)資料,其實很容易掌握,就是在具體的實例中會花些時間。

現(xiàn)在我就來把我抓取博客園數(shù)據(jù)的過程敘述一下,如果有朋友有更好的意見,歡迎提出來。

要使用正則表達式抓取數(shù)據(jù),首先就要創(chuàng)建一個正則表達式進行匹配,我推薦使用regulator,這個正則表達式工具,我們可以先使用這個工具把我們要使用的正則表達式拼接出來,然后在程序中使用。

我發(fā)現(xiàn)博客園的首頁列表可以通過http://www.cnblogs.com/p1,p2...這種方式來直接訪問,這樣我們就可以直接通過url獲取數(shù)據(jù),而不用模擬數(shù)據(jù)點擊事件來虛擬的點擊下一頁的那個按鈕獲取數(shù)據(jù),更加方便。因為我的目的就是抓取一些數(shù)據(jù),所以就簡單點。

1.首先就是要寫對應(yīng)的sql Helper類,相信這是很多程序員都會掌握的,無非就是增刪改查的操作。在創(chuàng)建好了sqlhelper類之后,我們就可以開始進行抓取數(shù)據(jù)的邏輯處理。

2.創(chuàng)建BlogRegexController

public class BlogRegexController : Controller
   {
     public void ExecuteRegex()
     {
       string strBaseUrl = "http://www.cnblogs.com/p"; //定義博客園可以訪問的列表數(shù)據(jù)的基地址
       for (int i = ; i = ; i++)//因為博客園首頁列表最大只有頁,所以我們這個循環(huán)就執(zhí)行次
       {
         string strUrl = strBaseUrl + i.ToString();
         BlogRege blogRegex = new BlogRege(); //定義的具體的Regex類 抓取博客園地址
         string result = blogRegex.SendUrl(strUrl);
         blogRegex.AnalysisHtml(result);
 
         Response.Write("獲取成功");
       }
     }
 
     //
     // GET: /BlogRegex/
 
     public ActionResult Index()
     {
       ExecuteRegex();
       return View();
     }
 
   }

在controller中的ExecuteRegex()方法就是執(zhí)行抓取博客園列表數(shù)據(jù)的功臣。

3.首先就是其中定義的BlogRege類,他負責抓取博客園列表數(shù)據(jù)并將其插入到數(shù)據(jù)庫中

public class BlogRege
   {   //負責把數(shù)據(jù)插入到數(shù)據(jù)庫中 使用到的是sqlhelper類
     public void Insert(string title, string content,string linkurl, int categoryID = )
     {
       SqlHelper helper = new SqlHelper();
       helper.Insert(title, content, categoryID,linkurl);
     }
     /// summary>
     /// 通過Url地址獲取具體網(wǎng)頁內(nèi)容 發(fā)起一個請求獲得html內(nèi)容
     /// /summary>
     /// param name="strUrl">/param>
     /// returns>/returns>
     public string SendUrl(string strUrl)
     {
       try
       {
         WebRequest webRequest = WebRequest.Create(strUrl);
         WebResponse webResponse = webRequest.GetResponse();
         StreamReader reader = new StreamReader(webResponse.GetResponseStream());
         string result = reader.ReadToEnd();
         return result;
       }
       catch (Exception ex)
       {
         throw ex;
       }
     }
     /// summary>
     /// 分析Html 解析出里面具體的數(shù)據(jù)
     /// /summary>
     /// param name="htmlContent">/param>
     public void AnalysisHtml(string htmlContent)
     {//這個就是我在regulator正則表達式工具中拼接獲取到的正則表達式 還有一點請注意就是轉(zhuǎn)義字符的問題
       string strPattern = "div\\s*class=\"post_item\">\\s*.*\\s*.*\\s*.*\\s*.*\\s*.*\\s*.*\\s*.*\\s*div\\s*class=\"post_item_body\">\\s*h>a\\s*class=\"titlelnk\"\\s*href=\"(?href>.*)\"\\s*target=\"_blank\">(?title>.*)/a>.*\\s*p\\s*class=\"post_item_summary\">\\s*(?content>.*)\\s*/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 title = match.Groups[].Value;//獲取到的是列表數(shù)據(jù)的標題
           string content = match.Groups[].Value;//獲取到的是內(nèi)容
           string linkurl=match.Groups[].Value;//獲取到的是鏈接到的地址
          Insert(title, content,linkurl);//執(zhí)行插入到數(shù)據(jù)庫的操作
         }
       }
     }
   }

4.通過上面的代碼我們可以很輕松的從博客園中獲取我們用來測試的數(shù)據(jù),方便快捷,而且真實,比我們手動輸入的速度要快很多。

正則表達式其實不應(yīng)該算是一種語言,只能算是一種語法,因為任何的語言包括C#,javascript等語言都對正則表達式有很好的支持,只是他們的使用語法稍有不同,其實只要我們可以正確的拼接出正則表達式,那么我們抓取任何網(wǎng)站的內(nèi)容都可以很輕松的做到。前一段我試著抓取了淘寶的數(shù)據(jù),一共抓取了有幾百萬條,我想應(yīng)該還有很多沒有抓取到,不得不佩服淘寶,數(shù)據(jù)量太大。

回到我們使用的C#語言上,其實對正則表達式也有著非常好的支持,Regex就是用來對正則表達式進行操作的類,所有的對正則表達式的操作都在這個類中。

如果你對正則表達式還不是太熟悉,網(wǎng)上有一篇正則表達式30分鐘入門教程,大家可以參考一下,寫的很不錯。再加上使用一個正則表達式工具,相信可以抓取到任何你想的內(nèi)容。

在拼接正則表達式的時候,可能會花費很長時間,畢竟要分析html結(jié)構(gòu),從中抓取內(nèi)容。希望大家可以沉住氣,因為只要正則表達式拼接正確,那么一定可以抓取正確的內(nèi)容。

為了避免大家說只說不做,那么我就把我抓取的博客園首頁內(nèi)容秀一下,因為博客園首頁數(shù)據(jù)會有更新,所以大家可以看到這些數(shù)據(jù)都是在博客園中順序存在的。

博客園每頁列表是20條,一共200頁,所以一共是4000條。數(shù)據(jù)抓取正確。

我以前說過,只是會代碼的程序員不一定是合格程序員,程序員應(yīng)該盡可能的減少自己的工作量,因為我們都是高智商的人。所以我們應(yīng)該積極的學習各種對我們的工作有幫助的框架或者是方法,比如IOC、Entity Framework或Nhibernate框架來減輕我們開發(fā)維護代碼的負擔,畢竟我們聽到需求要更改的反映,一般都是憤怒,然后大罵,最后才是修改。有些框架能夠幫助我們,給我們維護代碼帶來好心情,何樂而不為呢。

我最后說一句,因為我要開發(fā)一個簡單的仿照博客園的網(wǎng)站(MVC3),所以會用到各種技術(shù)準備,我提前寫出來把這些要用到的內(nèi)容整理一下,為以后的開發(fā)加速。

下一次,我準備整理一下在MVC中使用文本編輯器KindEditor的方法,希望大家如果有好的意見或者資料可以提供一下,讓我也增加一些見識。謝謝各位

您可能感興趣的文章:
  • dw(dreamweaver)正則表達式函數(shù)列表
  • python正則表達式抓取成語網(wǎng)站
  • php使用curl和正則表達式抓取網(wǎng)頁數(shù)據(jù)示例

標簽:池州 綿陽 恩施 六安 鞍山 咸陽 三亞 梅州

巨人網(wǎng)絡(luò)通訊聲明:本文標題《利用正則表達式抓取博客園列表數(shù)據(jù)》,本文關(guān)鍵詞  利用,正則,表達式,抓取,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《利用正則表達式抓取博客園列表數(shù)據(jù)》相關(guān)的同類信息!
  • 本頁收集關(guān)于利用正則表達式抓取博客園列表數(shù)據(jù)的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国产传媒一区在线| 欧美a一区二区| 亚洲日本免费电影| 亚洲久本草在线中文字幕| 欧美视频你懂的| 久久精品一区二区三区不卡牛牛 | 欧美日韩国产影片| 国产日韩欧美高清在线| 久久国产精品免费| 欧美性一二三区| 亚洲丰满少妇videoshd| 国产成人精品免费网站| 久久亚洲欧美国产精品乐播| 成人激情免费视频| 中文字幕第一区二区| 国产精品羞羞答答xxdd| 自拍偷自拍亚洲精品播放| 国产+成+人+亚洲欧洲自线| 中文字幕第一区| 欧美日韩视频第一区| 亚洲高清中文字幕| 91亚洲午夜精品久久久久久| 久久久久久久久99精品| 一区二区不卡在线播放 | 2019国产精品| 亚洲精品中文在线影院| 成人不卡免费av| 日本一区二区久久| 国产aⅴ综合色| 国产午夜精品在线观看| 麻豆视频一区二区| 久久综合久久99| 国产专区综合网| 亚洲精品在线观看视频| 石原莉奈一区二区三区在线观看| 色综合天天性综合| 一区二区国产盗摄色噜噜| 成人手机在线视频| 国产精品女人毛片| 91在线一区二区| 五月婷婷欧美视频| 欧美国产激情一区二区三区蜜月| 成人午夜精品一区二区三区| 中文字幕在线不卡视频| 欧美顶级少妇做爰| 国产黑丝在线一区二区三区| 一色屋精品亚洲香蕉网站| 欧美色综合影院| 美女视频黄久久| 久久精品一区四区| 精品日韩一区二区三区免费视频| 国产乱人伦精品一区二区在线观看| 亚洲一二三四区不卡| 午夜日韩在线观看| 亚洲成av人综合在线观看| 亚洲v日本v欧美v久久精品| 亚洲国产精品久久久男人的天堂| 中文字幕一区二区三区蜜月| 中文子幕无线码一区tr| 日本一区二区三区国色天香| 日本一区二区三区在线观看| 久久99精品久久久| 亚洲少妇中出一区| 国产精品久久久久aaaa樱花| 色欧美乱欧美15图片| 久久99精品久久久久久久久久久久| 亚洲成人免费看| 一区二区三区欧美日| 久久久91精品国产一区二区精品| 91浏览器打开| 成人午夜激情在线| 亚洲福利视频一区二区| 一区二区日韩av| 亚洲综合自拍偷拍| 在线观看一区二区视频| 91免费视频大全| 欧美色倩网站大全免费| 欧美在线观看一区| 日韩午夜精品电影| 中文字幕在线视频一区| 亚洲午夜免费电影| 精品一区中文字幕| 91免费看片在线观看| 亚洲丝袜精品丝袜在线| 亚洲国产精品二十页| 中文字幕一区二区视频| 国产精品嫩草久久久久| 亚洲视频免费在线| 日日欢夜夜爽一区| 国产白丝网站精品污在线入口| 欧美吻胸吃奶大尺度电影| 在线一区二区三区做爰视频网站| 3d动漫精品啪啪一区二区竹菊| 日韩精品一区二区三区老鸭窝| 国产精品美女一区二区三区| 亚洲一区二区三区在线看| 国内精品嫩模私拍在线| 欧美在线观看你懂的| 国产清纯白嫩初高生在线观看91 | 成人高清av在线| 欧美高清dvd| 亚洲国产日韩a在线播放性色| 97久久精品人人做人人爽| 久久久久久97三级| 国产精品一级片| 中文字幕av一区 二区| 韩国成人精品a∨在线观看| 91精选在线观看| 日韩高清在线不卡| 日韩欧美高清dvd碟片| 大尺度一区二区| 99久久精品国产毛片| 欧美影院午夜播放| 欧美视频一二三区| 欧美mv日韩mv| 日韩一级成人av| 国产综合久久久久影院| 欧美电视剧免费全集观看| 久久丁香综合五月国产三级网站| 久久一留热品黄| 欧美亚洲国产一区在线观看网站| 日韩伦理电影网| 日韩欧美国产精品一区| 成av人片一区二区| 免费人成在线不卡| 国产精品久久久一本精品| 欧美高清性hdvideosex| 成人h精品动漫一区二区三区| 亚洲午夜在线电影| 综合色天天鬼久久鬼色| 亚洲精品一区二区三区影院| 欧美日韩国产精品成人| av在线不卡电影| 国产美女在线精品| 国产拍揄自揄精品视频麻豆| 精品国产自在久精品国产| 色视频欧美一区二区三区| 六月丁香婷婷色狠狠久久| 亚洲图片欧美激情| 中文字幕不卡的av| 欧美三级在线视频| 国产91丝袜在线观看| 成人sese在线| 在线观看亚洲专区| 欧美电影影音先锋| 国产精品免费网站在线观看| 中文字幕亚洲在| 首页国产欧美久久| 成人av影视在线观看| 欧美日韩在线三级| 日韩一级视频免费观看在线| 91亚洲精品乱码久久久久久蜜桃| 加勒比av一区二区| 亚洲午夜日本在线观看| 一区二区三区小说| 亚洲精品大片www| 一区二区三区四区亚洲| 中文字幕一区免费在线观看| 老司机免费视频一区二区三区| 亚洲精品国久久99热| 久久综合色8888| 色系网站成人免费| 国产一区二区三区香蕉| 亚洲人成网站影音先锋播放| 国产精品久久久久久久久免费桃花| 精品国产欧美一区二区| 欧美精品 日韩| 91老师片黄在线观看| 51精品久久久久久久蜜臀| 91精品国产综合久久精品性色| 精品午夜一区二区三区在线观看| 国产精品免费视频网站| 中文字幕第一区综合| 欧美电影免费观看完整版| 久久人人超碰精品| 日韩一区二区在线播放| 91久久精品国产91性色tv| 99久久精品免费看国产免费软件| 成人18视频日本| 精品一区在线看| 国产在线看一区| 成人综合婷婷国产精品久久蜜臀 | 国产精品久久网站| 天天射综合影视| 亚洲一区二区三区在线播放| 亚洲福利一区二区| 国产成人激情av| 成人激情黄色小说| 高清日韩电视剧大全免费| 高清国产一区二区三区| 国产一区二区福利| www.亚洲激情.com| 欧美色老头old∨ideo| 美女精品自拍一二三四| 亚洲在线视频网站| 92精品国产成人观看免费| 国产乱人伦偷精品视频不卡 | 国产a久久麻豆| 日韩欧美亚洲国产另类| 亚洲国产精品v|