国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

抓取網(wǎng)站數(shù)據(jù)不再是難事了,F(xiàn)izzler(So Easy)全能搞定

2019-11-17 02:42:03
字體:
供稿:網(wǎng)友

抓取網(wǎng)站數(shù)據(jù)不再是難事了,F(xiàn)izzler(So Easy)全能搞定

首先從標(biāo)題說起,為啥說抓取網(wǎng)站數(shù)據(jù)不再難(其實(shí)抓取網(wǎng)站數(shù)據(jù)有一定難度),SO EASY!??!使用Fizzler全搞定,我相信大多數(shù)人或公司應(yīng)該都有抓取別人網(wǎng)站數(shù)據(jù)的經(jīng)歷,比如說我們博客園每次發(fā)表完文章都會被其他網(wǎng)站給抓取去了,不信你們看看就知道了。還有人抓取別人網(wǎng)站上的郵箱、電話號碼、QQ等等有用信息,這些信息抓取下來肯定可以賣錢或者干其他事情,我們每天都會時不時接到垃圾短信或郵件,可能就這么回事了,有同感吧,O(∩_∩)O哈哈~。

本人前段時間了寫了兩個程序,一個程序是抓取某彩票網(wǎng)站的數(shù)據(jù)(雙色球),一個是抓取求職網(wǎng)站(獵聘、前程無憂、智聯(lián)招聘等等)的數(shù)據(jù),當(dāng)時在寫這兩個程序的時候顯示尤為棘手,看到一堆的HTML標(biāo)簽真的是想死。首先來回顧一下之前我是如何解析HTML的,非常常規(guī)的做法,通過WebRequest拿到HTML內(nèi)容,再通過HTML標(biāo)簽一步一步截取你想要的內(nèi)容,以下代碼就是截取雙色球的紅球和籃球的代碼。一旦網(wǎng)站的標(biāo)簽發(fā)生一點(diǎn)變化可能面臨的就是要重新改程序了,使用起來非常不方便。

下面是我在解析雙色球的紅球和籃球的代碼,做得最多的是截?。ㄕ齽t表達(dá)式)標(biāo)簽相應(yīng)的內(nèi)容,也許這段代碼顯得還不是很復(fù)雜,因?yàn)檫@個截取的數(shù)據(jù)有限,而且非常有規(guī)律所以顯得比較簡單。

 1         #region * 在一個TR中,解析TD,獲取一期的號碼 2         /// <summary> 3         /// 在一個TR中,解析TD,獲取一期的號碼 4         /// </summary> 5         /// <param name="wn"></param> 6         /// <param name="trContent"></param> 7         PRivate void ResolveTd(ref WinNo wn, string trContent) 8         { 9             List<int> redBoxList = null;10             //匹配期號的表達(dá)式11             string patternQiHao = "<td align=/"center/" title=/"開獎日期";12             Regex regex = new Regex(patternQiHao);13             Match qhMatch = regex.Match(trContent);14             wn.QiHao = trContent.Substring(qhMatch.Index + 17 + patternQiHao.Length, 7);15             //匹配藍(lán)球的表達(dá)式16             string patternChartBall02 = "<td class=/"chartBall02/">";17             regex = new Regex(patternChartBall02);18             Match bMatch = regex.Match(trContent);19             wn.B = Convert.ToInt32(trContent.Substring(bMatch.Index + patternChartBall02.Length, 2));20             //存放匹配出來的紅球號碼21             redBoxList = new List<int>();22             //匹配紅球的表達(dá)式23             string patternChartBall01 = "<td class=/"chartBall01/">";24             regex = new Regex(patternChartBall01);25             MatchCollection rMatches = regex.Matches(trContent);26             foreach (Match r in rMatches)27             {28                 redBoxList.Add(Convert.ToInt32(trContent.Substring(r.Index + patternChartBall01.Length, 2)));29             }30             //匹配紅球的表達(dá)式31             string patternChartBall07 = "<td class=/"chartBall07/">";32             regex = new Regex(patternChartBall07);33             rMatches = regex.Matches(trContent);34             foreach (Match r in rMatches)35             {36                 redBoxList.Add(Convert.ToInt32(trContent.Substring(r.Index + patternChartBall07.Length, 2)));37             }38             //排序紅球號碼39             redBoxList.Sort();40             //第一個紅球號碼41             wn.R1 = redBoxList[0];42             //第二個紅球號碼43             wn.R2 = redBoxList[1];44             wn.R3 = redBoxList[2];45             wn.R4 = redBoxList[3];46             wn.R5 = redBoxList[4];47             wn.R6 = redBoxList[5];48         }

下面這塊的代碼是某招聘網(wǎng)站的截取數(shù)據(jù),就是一串的截取HTML標(biāo)簽的內(nèi)容,哈哈,當(dāng)時在寫這個時候相當(dāng)?shù)念^痛,不知有做個這方法工作的人是不是有同感,當(dāng)你解析比較多網(wǎng)站的數(shù)據(jù)就更加了(我寫了抓取前程無憂、獵聘網(wǎng)、前程無憂和拉勾網(wǎng)的數(shù)據(jù)),O(∩_∩)O哈哈~想死呀,使用正則表達(dá)是去截取數(shù)據(jù),再去提取相應(yīng)信息的工作。

// 正則表達(dá)式過濾:正則表達(dá)式,要替換成的文本        private static readonly string[][] Filters =        {            new[] { @"(?is)<scr
發(fā)表評論 共有條評論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 镇江市| 历史| 舟山市| 长汀县| 鹤岗市| 德安县| 迁安市| 湟源县| 鄂伦春自治旗| 平乡县| 九龙城区| 常山县| 武定县| 郧西县| 三河市| 烟台市| 商南县| 湖州市| 玛曲县| 鹿泉市| 乌恰县| 西藏| 中山市| 澎湖县| 南汇区| 卢氏县| 久治县| 沙田区| 广平县| 双城市| 贵州省| 大关县| 永靖县| 山阳县| 垫江县| 阜南县| 同心县| 利津县| 静安区| 革吉县| 三明市|