ObjC利用正規表示式抓取網頁內容

2021-06-07 01:10:21 字數 1015 閱讀 9118

在開發專案的過程,很多情況下我們需要利用網際網路上的一些資料,在這種情況下,我們可能要寫乙個爬蟲來爬我們所需要的資料。一般情況下都是利用正規表示式來匹配html,獲取我們所需要的資料。一般情況下分以下三步。

1、獲取網頁的html

2、利用正規表示式,獲取我們所需要的資料

3、分析,使用獲取到的資料,(例如,儲存到資料庫)

接下來我們分析**:

1、獲取網頁的html

對於一些網頁,不需要提交post提交資料時,我們可以簡單的利用nsurl類來獲取我們所需要的html,交將其轉換中kcfstringencodinggb_18030_2000格式,解決中文亂碼問題。

+(nsstring*) urlstring:(nsstring*)strurl

對於需要post提交資料的網頁,我們可以利用強大的asiformdatarequest類來實現,例如:

+(void)getpostresult:(nsstring*)startqi

else

}這樣的話,我們就通過了兩種方式獲取了我們所需要的html

2、分析html

關於利用正規表示式匹配問題,我又對nsstring類擴充套件了乙個方法-(nsmutablearray *)substringbyregular:(nsstring *)regular。根據傳入的正規表示式,返回所有匹配的陣列。

@implementation nsstring(stringregular)

-(nsmutablearray *)substringbyregular:(nsstring *)regular

}return arr;

}@end

在這種情況下,我們首先我得到我們要獲取資料的正規表示式,關於正規表示式這種火星文我就不多說了,我也很糾結,我就不多說了,但是有一點就是,所寫的正規表示式一定是我們所需要的資料,並且能夠遮蔽無效資訊的,有可能在一次匹配中無法獲取,可以多次利用正規表示式來分段獲取。下面是我的語句,在我的例子中,就是兩次利用正規表示式。

nsstring *regstr = @"\\w

正規表示式抓取網頁資訊

宣告 此正規表示式只適用於.net 使用的流程為傳送http請求返回整個html網頁,然後從此html頁面抓取想要的資料。第一部分 傳送httpwebrequest 請求 url 位址 瀏覽器型別設定 request.useragent mozilla 4.0 compatible msie 7.0...

利用正規表示式 組合抓取 CSDN部落格資訊

應用的正規表示式函式re.findall,元字元.抓取網頁使用的模組requests 抓取情況 usr bin python coding utf 8 import requests import re link headers r requests.get link,headers headers...

網頁解析正規表示式

在寫爬蟲的過程中,最麻煩的就是寫正規表示式,還要乙個乙個的嘗試,一次次的除錯,很是費時間。於是我就寫了乙個網頁版的,只需要輸入要爬的 和正則式,網頁上就可以顯示爬到的資料。思路 其實很簡單,將 和正則式傳到伺服器,伺服器解析之後,將結果返回到前端。我用的是bootcss 前端 bottle 後台用p...