正則方式的自動小偷抓網(wǎng)程序
更新時間:2011年11月21日 19:01:37 作者:
公司里面有許多數(shù)據(jù)沒人去錄入,做一個抓取網(wǎng)頁的程序,以前做CMS系統(tǒng)的時候涉及過,不過這次的處理HTML上和以前做了些區(qū)別
有一些瑕疵沒時間細(xì)化,只是實(shí)現(xiàn)了效果,大家看一看這個正則該怎么寫好:
URL:http://news.szhome.com/83642.html
內(nèi)容:
object></div></div>
</div>
<div class="share"><div class="linkshare" style="right: 0">
這兩個標(biāo)記之間的代碼。END標(biāo)記的問題解決了,但是郁悶的是START截取的標(biāo)記因?yàn)榈诙€DIV和第三個中間有換行,我無語了不知道怎么處理這個正則。
而且郁悶的是有多處有這種重復(fù)型標(biāo)記,對正則不太熟悉,我的解決方法如下:
MatchCollection mc = Regex.Matches(ghoPage.Trim(), @"(?<=<div class=['""]txtmsg['""]>)[\s\S]*?(?=<div class=['""]share['""]><div class=)", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
foreach (Match mm in mc)
{
sb.Append(mc[0].Value.Substring(1933, mc[0].Value.Length - 1933));
}
我算出截取出來多處兩個FLASH廣告DIV的長度是1933,然后處理字符串截取后得到我想要的文本,這樣做的劣勢就是萬一該站改變了兩個FLASH廣告DIV的長度我獲取的數(shù)據(jù)就不是完整的呢,有興趣的研究下,看看換行的DIV正則問題怎么處理。
里面用到了自己寫的一個BUTTON控件,可以在點(diǎn)擊后禁止重復(fù)點(diǎn)擊,然后就是一些判斷,在思路上蠻不錯,可以做到一直抓取,因?yàn)椴唤?jīng)常用就沒做成WINDOWS服務(wù)類型,這樣的程序可以做成WINDOWS服務(wù),把規(guī)則寫在INI文件中,抓錄的規(guī)則和正則也放在配置文件中,這樣就能實(shí)現(xiàn)自動抓錄。
很短的代碼,對這種抓錄有興趣的朋友可以嘗試下。下載
URL:http://news.szhome.com/83642.html
內(nèi)容:
復(fù)制代碼 代碼如下:
object></div></div>
</div>
<div class="share"><div class="linkshare" style="right: 0">
這兩個標(biāo)記之間的代碼。END標(biāo)記的問題解決了,但是郁悶的是START截取的標(biāo)記因?yàn)榈诙€DIV和第三個中間有換行,我無語了不知道怎么處理這個正則。
而且郁悶的是有多處有這種重復(fù)型標(biāo)記,對正則不太熟悉,我的解決方法如下:
復(fù)制代碼 代碼如下:
MatchCollection mc = Regex.Matches(ghoPage.Trim(), @"(?<=<div class=['""]txtmsg['""]>)[\s\S]*?(?=<div class=['""]share['""]><div class=)", RegexOptions.CultureInvariant | RegexOptions.IgnoreCase);
foreach (Match mm in mc)
{
sb.Append(mc[0].Value.Substring(1933, mc[0].Value.Length - 1933));
}
我算出截取出來多處兩個FLASH廣告DIV的長度是1933,然后處理字符串截取后得到我想要的文本,這樣做的劣勢就是萬一該站改變了兩個FLASH廣告DIV的長度我獲取的數(shù)據(jù)就不是完整的呢,有興趣的研究下,看看換行的DIV正則問題怎么處理。
里面用到了自己寫的一個BUTTON控件,可以在點(diǎn)擊后禁止重復(fù)點(diǎn)擊,然后就是一些判斷,在思路上蠻不錯,可以做到一直抓取,因?yàn)椴唤?jīng)常用就沒做成WINDOWS服務(wù)類型,這樣的程序可以做成WINDOWS服務(wù),把規(guī)則寫在INI文件中,抓錄的規(guī)則和正則也放在配置文件中,這樣就能實(shí)現(xiàn)自動抓錄。
很短的代碼,對這種抓錄有興趣的朋友可以嘗試下。下載
相關(guān)文章
ASP.NET Web Api 2實(shí)現(xiàn)多文件打包并下載文件的實(shí)例
這篇文章主要介紹了ASP.NET Web Api 2利用ByteArrayContent和StreamContent實(shí)現(xiàn)多文件打包并下載的方法,提供源碼下載,需要的朋友可以參考下。2016-06-06asp.net gridview的Rowcommand命令中獲取行索引的方法總結(jié)
asp.net gridview的Rowcommand命令中獲取行索引的方法總結(jié),需要的朋友可以參考下。2010-05-05.net 中的SqlConnection連接池機(jī)制詳解
.net 中通過 SqlConnection 連接 sql server,我們會發(fā)現(xiàn)第一次連接時總是很耗時,但后面連接就很快,這個其實(shí)和SqlConnection 的連接池機(jī)制有關(guān)2013-04-04ASP.NET中實(shí)現(xiàn)Form表單字段值自動填充到操作模型中
這篇文章主要介紹了ASP.NET中實(shí)現(xiàn)Form表單字段值自動填充到操作模型中,本文模仿MVC模式中的自動映射表單了模型,使用泛型和反射實(shí)現(xiàn),需要的朋友可以參考下2015-06-06ASP.NET環(huán)境下為網(wǎng)站增加IP過濾功能
通過深入的交流和溝通,確認(rèn)了該發(fā)電廠在企業(yè)網(wǎng)站用戶訪問控制方面的改進(jìn)要求2009-06-06asp.net實(shí)現(xiàn)的MD5加密和DES加解密算法類完整示例
這篇文章主要介紹了asp.net實(shí)現(xiàn)的MD5加密和DES加解密算法類,結(jié)合完整實(shí)例形式分析了asp.net實(shí)現(xiàn)MD5加密算法及DES加密和解密的相關(guān)技巧,需要的朋友可以參考下2016-07-07Asp.net core中實(shí)現(xiàn)自動更新的Option的方法示例
這篇文章主要介紹了Asp.net core中實(shí)現(xiàn)自動更新的Option的方法示例,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-03-03