校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃

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

利用正則表達式抓取博客園列表數據

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

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

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

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

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

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

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

2.創建BlogRegexController

public class BlogRegexController : Controller
   {
     public void ExecuteRegex()
     {
       string strBaseUrl = "http://www.cnblogs.com/p"; //定義博客園可以訪問的列表數據的基地址
       for (int i = ; i = ; i++)//因為博客園首頁列表最大只有頁,所以我們這個循環就執行次
       {
         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()方法就是執行抓取博客園列表數據的功臣。

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

public class BlogRege
   {   //負責把數據插入到數據庫中 使用到的是sqlhelper類
     public void Insert(string title, string content,string linkurl, int categoryID = )
     {
       SqlHelper helper = new SqlHelper();
       helper.Insert(title, content, categoryID,linkurl);
     }
     /// summary>
     /// 通過Url地址獲取具體網頁內容 發起一個請求獲得html內容
     /// /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 解析出里面具體的數據
     /// /summary>
     /// param name="htmlContent">/param>
     public void AnalysisHtml(string htmlContent)
     {//這個就是我在regulator正則表達式工具中拼接獲取到的正則表達式 還有一點請注意就是轉義字符的問題
       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;//獲取到的是列表數據的標題
           string content = match.Groups[].Value;//獲取到的是內容
           string linkurl=match.Groups[].Value;//獲取到的是鏈接到的地址
          Insert(title, content,linkurl);//執行插入到數據庫的操作
         }
       }
     }
   }

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

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

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

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

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

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

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

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

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

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

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

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

巨人網絡通訊聲明:本文標題《利用正則表達式抓取博客園列表數據》,本文關鍵詞  利用,正則,表達式,抓取,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《利用正則表達式抓取博客園列表數據》相關的同類信息!
  • 本頁收集關于利用正則表達式抓取博客園列表數據的相關信息資訊供網民參考!
  • 推薦文章
    校园春色亚洲色图_亚洲视频分类_中文字幕精品一区二区精品_麻豆一区区三区四区产品精品蜜桃
    在线一区二区观看| 欧美日韩国产综合一区二区| 欧美在线观看视频一区二区| 538在线一区二区精品国产| 久久综合久久综合久久综合| 国产精品欧美综合在线| 一区二区免费在线播放| 国产精品一区久久久久| 日本精品视频一区二区三区| 精品久久久久av影院| 一区二区三区四区五区视频在线观看 | 一区二区三区四区高清精品免费观看| 日韩精品电影在线| 9人人澡人人爽人人精品| 日韩欧美综合一区| 国产精品久久久爽爽爽麻豆色哟哟| 亚洲女人小视频在线观看| 韩国v欧美v亚洲v日本v| 欧美日韩国产综合一区二区| 亚洲欧洲成人精品av97| 麻豆精品在线看| 欧美三级三级三级爽爽爽| 亚洲品质自拍视频| 99久久综合国产精品| 中文子幕无线码一区tr| 国产成人在线视频网址| 亚洲精品在线观看网站| 天堂资源在线中文精品| 国产乱色国产精品免费视频| 日韩精品一区二区三区中文不卡| 亚洲在线视频网站| 91视频精品在这里| 中文字幕不卡在线| 成人伦理片在线| 国产精品美女久久福利网站| 国产在线精品一区二区三区不卡| 一本在线高清不卡dvd| 中文字幕巨乱亚洲| 高清在线成人网| 欧美一级在线视频| 久久国产综合精品| 亚洲精品一区在线观看| 污片在线观看一区二区| 日韩视频永久免费| 国产麻豆精品theporn| 亚洲精品在线电影| 国产成人午夜电影网| 国产精品日韩精品欧美在线| 成人av第一页| 一区二区三区欧美亚洲| 欧美少妇bbb| 午夜视频一区二区| 精品国产乱码91久久久久久网站| 丝袜美腿亚洲一区| 欧美精品一区二区精品网| 国产麻豆精品在线观看| www成人在线观看| 成人小视频免费观看| 亚洲欧美二区三区| 欧美男人的天堂一二区| 国产在线精品一区二区| 国产精品午夜春色av| 欧美日韩激情一区二区三区| 国内精品免费**视频| 亚洲视频一区二区在线观看| 538在线一区二区精品国产| 国产91富婆露脸刺激对白| 最新国产成人在线观看| 欧美一区二区三区不卡| 成人开心网精品视频| 午夜日韩在线观看| 国产日韩欧美一区二区三区乱码 | 欧美亚洲综合久久| 奇米色一区二区| 亚洲国产精品精华液2区45| 欧洲精品一区二区| 紧缚奴在线一区二区三区| 一区在线观看视频| 欧美一区二区三区人| 成人免费毛片嘿嘿连载视频| 五月天一区二区| 国产欧美一区二区精品性色超碰| 欧美日韩精品是欧美日韩精品| 国产成人啪免费观看软件| 亚洲国产精品天堂| 国产精品天天看| 日韩视频中午一区| 91国产精品成人| 国产精品99久久不卡二区| 亚洲午夜久久久久久久久久久| 久久久噜噜噜久噜久久综合| 欧美三区在线观看| 色欧美日韩亚洲| 国产一区视频在线看| 性欧美大战久久久久久久久| 国产精品拍天天在线| 精品国产凹凸成av人导航| 欧美日韩国产在线观看| 97久久精品人人澡人人爽| 狠狠色丁香久久婷婷综合丁香| 一区二区三区中文字幕电影 | 国产91高潮流白浆在线麻豆| 另类人妖一区二区av| 日日摸夜夜添夜夜添精品视频| 中文字幕一区二区视频| 久久久精品综合| 精品国产不卡一区二区三区| 91精品国产综合久久小美女| 欧美三级日韩三级国产三级| 91在线精品一区二区| 成人黄色国产精品网站大全在线免费观看| 久久精品99国产精品| 奇米精品一区二区三区四区| 亚洲一区二区三区四区在线| 亚洲免费成人av| 亚洲人成影院在线观看| 日韩美女精品在线| 自拍偷在线精品自拍偷无码专区| 中文字幕乱码久久午夜不卡| 欧美精品一区在线观看| 精品久久久网站| 久久精品视频在线免费观看| 国产欧美一二三区| 国产精品私房写真福利视频| 国产精品黄色在线观看 | 国产欧美中文在线| 日本一区二区三区久久久久久久久不 | 风流少妇一区二区| 成人激情小说乱人伦| 国产在线精品一区二区夜色| 看电影不卡的网站| 国产福利不卡视频| 成人免费高清在线| 在线一区二区视频| 717成人午夜免费福利电影| 欧美一区二区三区白人| 久久精品欧美一区二区三区不卡| 欧美韩国日本一区| 亚洲精品水蜜桃| 蜜臀av一区二区在线免费观看 | 精品欧美久久久| 亚洲欧洲成人精品av97| 亚洲一区二区在线免费观看视频| 日韩国产高清影视| 国产精品亚洲成人| 91精品福利视频| 欧美大尺度电影在线| 亚洲欧洲精品一区二区三区| 天堂精品中文字幕在线| 国产成人夜色高潮福利影视| 色吧成人激情小说| 欧美成人三级电影在线| 亚洲三级在线观看| 捆绑紧缚一区二区三区视频| 成人激情电影免费在线观看| 欧美日韩成人在线| 国产日韩欧美一区二区三区乱码| 亚洲一级二级三级| 国产乱人伦偷精品视频免下载| 欧美在线观看18| 精品国产成人在线影院| 亚洲成人777| www.日本不卡| 精品国产第一区二区三区观看体验| 日韩理论片中文av| 国产在线视频一区二区三区| 欧美午夜视频网站| 中文字幕欧美日韩一区| 奇米色一区二区| 91丝袜国产在线播放| 精品国产99国产精品| 亚洲国产精品一区二区久久| 成人国产精品免费观看视频| 欧美一级久久久久久久大片| 亚洲天天做日日做天天谢日日欢 | 亚洲柠檬福利资源导航| 久久国产精品第一页| 欧美视频日韩视频在线观看| 国产精品盗摄一区二区三区| 麻豆精品久久精品色综合| 99re66热这里只有精品3直播| 久久男人中文字幕资源站| 青青草成人在线观看| 精品视频免费在线| 亚洲欧美激情小说另类| 99久久婷婷国产精品综合| 久久婷婷国产综合精品青草| 美女网站在线免费欧美精品| 欧美日韩一级二级| 亚洲综合视频在线| 91亚洲大成网污www| 国产精品久久久久久久第一福利 | 国产精品一二三在| 日韩一区二区三区观看| 丝袜美腿一区二区三区| 91精品婷婷国产综合久久竹菊| 亚洲激情第一区| 91国产福利在线| 亚洲成人tv网| 91精品国产91热久久久做人人 |