成人怡红院-成人怡红院视频在线观看-成人影视大全-成人影院203nnxyz-美女毛片在线看-美女免费黄

站長資訊網
最全最豐富的資訊網站

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

鑒于我在要完成的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的方法,希望大家如果有好的意見或者資料可以提供一下,讓我也增加一些見識。謝謝各位

贊(0)
分享到: 更多 (0)
?
網站地圖   滬ICP備18035694號-2    滬公網安備31011702889846號
亚洲AV永久无码老湿机漫画| 日韩无码av一区二区| 中国少妇初尝黑人巨高清| 久久久久女教师免费一区| 亚洲熟妇AV一区二区三区| 欧美最猛黑人XXXⅩ猛男欧视频| 98久9在线 | 免费| 娇妻被领导抱进卧室| 无套内谢孕妇毛片免费看看| YOUJIZZ丰满熟妇| 日韩欧群交P片内射中文| 丰满白嫩大屁股ASS| 午夜精品一区二区三区在线视| 久久精品国产亚洲AV麻豆网站| 97久久人人超碰超碰窝窝| 欧美日韩一区二区三区精品视频 | 久久久久影院美女国产主播| 久久国产情侣露脸精品| 裸体欣赏ⅤIDE0SPH0TO| 强奷漂亮雪白丰满少妇| 无码aⅴ精品一区二区三区浪潮 | 特大巨黑吊性XXXX| 亚洲成A人片77777kkkk| 中国熟妇内谢69XXXXX软件| 被主人调教边C边打屁股作文| 国产精品无码素人福利不卡| 久久精品丝袜高跟鞋| 欧美一区二区三区放荡人妇 | 国产亚洲精品精品精品| 久久亚洲精品成人无码| 日本大学生处毛茸茸| 亚洲AV日韩AV高潮无码专区| 中文无码一区二区不卡ΑV| 丰满的少妇愉情HD高清免费| 精品极品三大极久久久久| 女性高爱潮AAAA级视频免费| 无码国产孕妇一区二区免费AV| 女孩子手脚绑起来嘴用胶带封上| 四虎影视APP IOS| 亚洲综合久久一本久道| 办公室揉弄震动嗯~动态图| 国色天香在线观看全集免费播放| 内射猛交XXXXⅩX最新消息| 四虎影视国产精品久久| 一本色道无码道在线观看| 成人无码精品无码社区| 精品不卡一区二区| 日本不良网站正能量入口大豆行情| 亚洲AV无码一区二区三区在线| 99RE8这里有精品热视频| 国产精品久久久久9999| 妺妺窝人体色77777791| 午夜无码人妻AV大片色欲 | 欧美 日韩 国产 另类 图片区 | 国产精品普通话国语对白露脸| 秘密列车在线全集免费观看| 无码人妻AV一二区二区三区| 97久久精品午夜一区二区| 国产无套内射普通话对白| 欧美激情视频一区| 亚洲AV伊人久久青青草原| А√天堂 地址 在线| 精品国产AV一区二区三区| 日韩内射美女人妻一区二区三区| 亚洲综合色在线观看一区二区| 丰满熟妇人妻风流农村视频| 乱无码伦视频在线观看| 性色AⅤ一二三天美传媒| WWW夜插内射视频网站| 精品久久久久久久久久久AⅤ| 少妇WWB搡BBBB搡BBBB| 中文字幕丰满乱子伦无码专区| 国产人无码A在线西瓜影音| 欧美做受三级级视频播放| 亚洲无码成人电影| 国产精华液一二三区别| 欧美男男作爱GAYWWW| 亚洲色欲啪啪久久WWW综合网 | WW欧日韩视频高清在线| 久久精品国产成人| 无码中文亚洲AV影音先锋无码| MM1313又粗又大受不了| 久久久久久精品成人网站| 午夜无码性爽快影院6080| 成·人免费午夜无码不卡| 久久综合精品国产丝袜长腿| 亚洲AV福利院在线观看| 非洲妓女BBWBBWW| 欧美乱大交XXXXX潮喷| 艳妇乳肉豪妇荡乳ⅩXXO电影| 国产欧美日韩VA另类在线播放| 日产无人区一线二线三线新版| 少妇高潮太爽了在线观看欧美| 中文字幕亚洲乱码熟女一区二区 | 国产成人久久精品一区二区三区| 漂亮人妻洗澡被强人人躁| 曰曰摸天天添天天湿| 精产国品一二三产品区别在 | 狠狠88综合久久久久综合网| 挽起裙子跨开双腿坐下去| 成年女人免费观看播放视频| 哦┅┅快┅┅用力啊┅┅在线观看| 亚洲一区精品人人爽人人躁| 狠狠综合久久久久尤物丿| 无码熟妇人妻AV在线影片免费| 粗壮挺进人妻水蜜桃成熟漫画| 欧美人与禽2O2O性论交| 找老女人泻火对白自拍| 九九视频麻婆豆腐在线观看 | 我偷偷跟亲妺作爱H| 成人无码H免费动漫在线观看| 强奷漂亮饱满雪白少妇AV| 51爆料网每日爆料黑料| 么公的好大好硬好深好爽视频| 亚洲综合成人AⅤ在线观看| 精品精品国产欧美在线| 亚洲AV中文无码乱人伦在线播放| 国产卡一卡二无线乱码| 玩弄CHINESE丰满人妻VI| 国产DB624色谱柱88690| 少妇18p一区二区三区| 大乱东京道一本热大交乱| 日韩激情在线小视频观看| 播放片高清MV在线观看| 日本多人强伦姧人妻完整版| 扒掉内裤露出打嫩嫩的屁股| 欧洲一卡二卡三卡| 啊~CAO死你个小SAO货视频| 人妻丰满熟妇无码区yeezy| ZOOM与人性ZOOM2023| 日本MACBOOKPRO高清| 博士用模型查出医院多收10万| 日本公与丰满熄的| 成人午夜高潮刺激免费视频 | 欧美成人性生活视频| AV无码AV无码专区| 欧美日韩在线亚洲一区蜜芽| ZOOM动物高清视频| 日韩精品人成在线播放| 公的粗大挺进了我的密道视频| 婷婷色婷婷开心五月| 国产精品亚洲片在线| 亚洲AV无码乱码精品国产按摩| 黑人巨大xxxx| 亚洲熟妇丰满美女XXXXX| 久久天天躁夜夜躁狠狠躁| 做你的爱人3在线观看完整版高清 做I爱直播APP | 美女内射毛片在线看| BT天堂新版中文在线地址| 日韩AV高清在线观看| 国产成人亚洲精品无码青青草原| 无码高潮爽到爆的喷水视频APP | 欧美内射潮喷一区二虎| 波多野结衣美乳人妻HD电影欧美| 十八禁乳露裸体奶头WWW网站| 国产精品SP调教打屁股| 亚洲AV无码专区国产乱码不卡| 久久精品国产亚洲ΑV忘忧草| 亚洲综合一区自偷自拍| 欧美粗大强交18P直喷水| 成人片黄网站色大片免费观看| 天堂AV无码大芭蕉伊人AV孕妇 | 亚洲无人区码一二三四区别| 免费无遮挡无码H肉动漫在线观看 免费无遮挡色视频网站 | 久久精品国产国产精品四凭| 99精品国产福久久久久久| 色YEYE香蕉凹凸视频在线观看| 国产偷V国产偷V亚洲高清学生| 亚洲中文久久精品无码照片| 欧美精品视频一区二区三区| 国产办公室沙发系列高清| 亚洲国产AⅤ天堂久久| 免费的视频BGM大全软件下载| 成人H动漫无码网站久久| 学渣含着学霸几巴的写作业视频| 精品无码国产污污污免费网站| 50岁露脸老熟女88AV| 色欲AⅤ亚洲情无码AV| 好男人WWW在线观看视频| 正在播放国产对白孕妇作爱| 日产亚洲一区二区三区| 韩国乱码片免费看| 中文字幕无码日韩专区免费| 少妇被躁爽到呻吟全过的小说| 精品国产人成亚洲区| 99精品人妻少妇一区二区| 天天AV天天爽无码中文| 久久精品人人爽人人爽| 宝贝你夹得太紧了我都要断了| 亚洲AV不卡一区二区三区| 麻豆熟妇人妻XXXXXX| 国产AV一区二区三区天堂综合网| 亚洲色国产欧美日韩| 人人超人人超碰超国产| 好爽好大再深点高H免费观看| 97SE亚洲国产综合自在线不卡| 无码人妻久久1区2区3区| 妹妹中考前让我C了1次| 国产精华最好的产品有哪些| 中国女人内射6XXXXX|