亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Regex > 正文

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

2020-03-16 21:04:08
字體:
來源:轉載
供稿:網友

這篇文章主要介紹了利用正則表達式抓取博客園列表數據的相關資料,需要的朋友可以參考下

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

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

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

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

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

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

2.創建BlogRegexController

 

 
  1. public class BlogRegexController : Controller 
  2. public void ExecuteRegex() 
  3. string strBaseUrl = "http://www.cnblogs.com/p"; //定義博客園可以訪問的列表數據的基地址 
  4. for (int i = ; i <= ; i++)//因為博客園首頁列表最大只有頁,所以我們這個循環就執行次 
  5. string strUrl = strBaseUrl + i.ToString(); 
  6. BlogRege blogRegex = new BlogRege(); //定義的具體的Regex類 抓取博客園地址 
  7. string result = blogRegex.SendUrl(strUrl); 
  8. blogRegex.AnalysisHtml(result); 
  9.  
  10. Response.Write("獲取成功"); 
  11.  
  12. // 
  13. // GET: /BlogRegex/ 
  14.  
  15. public ActionResult Index() 
  16. ExecuteRegex(); 
  17. return View(); 
  18.  

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

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

 

  1. public class BlogRege 
  2. //負責把數據插入到數據庫中 使用到的是sqlhelper類 
  3. public void Insert(string title, string content,string linkurl, int categoryID = ) 
  4. SqlHelper helper = new SqlHelper(); 
  5. helper.Insert(title, content, categoryID,linkurl); 
  6. /// <summary> 
  7. /// 通過Url地址獲取具體網頁內容 發起一個請求獲得html內容 
  8. /// </summary> 
  9. /// <param name="strUrl"></param> 
  10. /// <returns></returns> 
  11. public string SendUrl(string strUrl) 
  12. try 
  13. WebRequest webRequest = WebRequest.Create(strUrl); 
  14. WebResponse webResponse = webRequest.GetResponse(); 
  15. StreamReader reader = new StreamReader(webResponse.GetResponseStream()); 
  16. string result = reader.ReadToEnd(); 
  17. return result; 
  18. catch (Exception ex) 
  19. throw ex; 
  20. /// <summary> 
  21. /// 分析Html 解析出里面具體的數據 
  22. /// </summary> 
  23. /// <param name="htmlContent"></param> 
  24. public void AnalysisHtml(string htmlContent) 
  25. {//這個就是我在regulator正則表達式工具中拼接獲取到的正則表達式 還有一點請注意就是轉義字符的問題 
  26. 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>"
  27. Regex regex = new Regex(strPattern, RegexOptions.IgnoreCase | RegexOptions.Multiline | RegexOptions.CultureInvariant); 
  28. if (regex.IsMatch(htmlContent)) 
  29. MatchCollection matchCollection = regex.Matches(htmlContent); 
  30. foreach (Match match in matchCollection) 
  31. string title = match.Groups[].Value;//獲取到的是列表數據的標題 
  32. string content = match.Groups[].Value;//獲取到的是內容 
  33. string linkurl=match.Groups[].Value;//獲取到的是鏈接到的地址 
  34. Insert(title, content,linkurl);//執行插入到數據庫的操作 

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

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

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

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

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

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

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

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

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

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

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

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美日韩亚洲一区二| 91精品国产高清久久久久久91| 亚洲国产中文字幕久久网| 亚洲成人激情图| 亚洲精品国产精品国自产在线| 91成品人片a无限观看| 欧美黑人国产人伦爽爽爽| 亚洲精品之草原avav久久| 在线精品国产欧美| 久久久久久噜噜噜久久久精品| 亚洲激情在线视频| 91精品国产沙发| 欧美日韩国产黄| 久久免费在线观看| 欧美国产日韩一区二区在线观看| 欧美乱大交做爰xxxⅹ性3| 欧美精品videossex88| 中文字幕日韩欧美精品在线观看| 色综合久久88色综合天天看泰| 日韩av大片免费看| 欧美与黑人午夜性猛交久久久| 亚洲免费福利视频| 97久久久免费福利网址| 久久亚洲春色中文字幕| 日韩av在线影视| 国产精品ⅴa在线观看h| 欧美极品xxxx| 日本精品久久中文字幕佐佐木| 人人爽久久涩噜噜噜网站| 国产精品天天狠天天看| 爽爽爽爽爽爽爽成人免费观看| 最好看的2019年中文视频| 日韩女在线观看| 国产精品成人免费视频| 亚洲欧美日韩中文视频| 97视频在线免费观看| 成人亚洲欧美一区二区三区| 亚洲人成五月天| 2019中文字幕在线观看| 国产精品久久久久久久久男| 亚洲精品福利视频| 成人免费福利在线| 欧美精品福利在线| 国产欧美精品va在线观看| 国产精品网站大全| 欧美亚洲午夜视频在线观看| 亚洲最大在线视频| 国产日韩欧美中文在线播放| 国产视频精品va久久久久久| 成人免费高清完整版在线观看| 日韩av在线一区二区| 在线观看欧美日韩国产| 97av在线影院| 亚洲欧美中文日韩v在线观看| 久久精品国产v日韩v亚洲| 亚洲国产小视频| 亚洲丝袜av一区| 国产精品亚洲第一区| 久久久久久久av| 78色国产精品| 亚洲一区精品电影| 国产亚洲精品久久久久久777| 久久久国产精品亚洲一区| 亚洲精品xxx| 亚洲精品成人久久电影| 国产欧美久久一区二区| 久久久亚洲国产天美传媒修理工| 精品久久久久国产| 欧美成人午夜激情在线| 国产精品99导航| 亚洲一区二区久久久| 久久精品国产91精品亚洲| 欧美精品免费在线观看| 日韩最新av在线| 97精品在线视频| 久久国产精品网站| 国产一区二区三区免费视频| 欧美性做爰毛片| 成人激情在线播放| 日韩综合中文字幕| 日韩高清a**址| 亚洲天堂av电影| 精品国产一区二区三区久久狼5月| 欧美激情欧美狂野欧美精品| 亚洲xxxx视频| 北条麻妃一区二区在线观看| 国产欧美一区二区白浆黑人| 国产欧美日韩中文| 日韩av在线免费观看一区| 亚洲一区二区三区在线视频| 亚洲人成电影网站色| 91精品在线观| 欧美一区二区三区免费视| 97在线视频免费播放| 在线观看精品国产视频| 久99久在线视频| 亚洲精品日韩久久久| 美女黄色丝袜一区| 91精品综合久久久久久五月天| 性欧美在线看片a免费观看| 91视频-88av| 亚洲夜晚福利在线观看| 91av在线播放视频| 欧美激情在线一区| 成人av色在线观看| 国产精品久久久久久av下载红粉| 91高潮在线观看| 日本午夜人人精品| 国产精品91久久久| 日韩专区中文字幕| 欧美午夜性色大片在线观看| 亚洲国产精品人久久电影| 日韩av在线网址| 亚洲四色影视在线观看| 亚洲欧美精品中文字幕在线| 精品在线观看国产| 亚洲国产精品免费| 精品国产1区2区| 精品欧美aⅴ在线网站| 色偷偷888欧美精品久久久| 亚洲白拍色综合图区| 国产精品jizz在线观看麻豆| 欧美日韩在线免费| 亚洲成人a级网| 国产精品日日做人人爱| 国产精品亚洲第一区| 色系列之999| 国产成人精品久久久| 国产成人激情小视频| 久久久电影免费观看完整版| 国产97免费视| 成人黄色在线观看| 高潮白浆女日韩av免费看| 亚洲一级黄色av| 日韩毛片在线观看| 96精品视频在线| 国产精品久久久久久一区二区| 日韩视频欧美视频| 精品视频偷偷看在线观看| 2023亚洲男人天堂| 国产成人亚洲综合青青| 日韩少妇与小伙激情| 欧美亚洲日本网站| 国产91精品视频在线观看| 中文字幕精品久久| 欧美影院成年免费版| 国产裸体写真av一区二区| 亚洲人精品午夜在线观看| 亚洲欧美日韩精品久久| 亚洲一区二区国产| 日本午夜在线亚洲.国产| 欧美老女人性视频| 欧美麻豆久久久久久中文| 国产亚洲aⅴaaaaaa毛片| 欧美视频在线观看 亚洲欧| 色婷婷亚洲mv天堂mv在影片| 国产精品激情自拍| 久久久国产精品免费| 欧美一区二三区| 狠狠久久五月精品中文字幕| 国产香蕉一区二区三区在线视频| 精品亚洲一区二区三区在线观看| 亚洲国产97在线精品一区| 国产91在线高潮白浆在线观看|