python爬蟲(4) 正規表示式(一)

2022-09-13 11:42:14 字數 1777 閱讀 2944

在前幾篇文章中我們使用了python的urllib模組,做了一些訪問網頁的工作。現在介紹乙個非常強大的工具——正規表示式。在講述正則的時候,我參考了《精通正規表示式(第三版)     ---jeffrey e.f.friedl》這本書,雖然本書的參考語言並沒有python,但相通之處頗多,可以細讀一部分。

這次我們使用另外乙個模組——requests,來驗證。首先pip install requests,安裝上這個package。requests的使用看起來比urllib要簡單一些:

1

#首先我們匯入這個包

2import

requsets

34 url="

"56#

get方法

7 response=requests.get(url)8#

post方法

9 response=requests.post(url)

1011#其他

12 response=requests.put(url)

13 response=requests.delete(url)

14 response=requests.head(url)

15 response=requests.options(url)

1617

#獲取內容

關於requests模組,我們可以在以後使用過程中繼續學習。下面我們來看基於正規表示式的re模組,然後可以用re來匹配網頁上的內容了。

一、正規表示式的規則

正規表示式有以下幾個元字元,他們各自都有著特殊的含義:  .   ^  $  *  +    [ ]  \   |  (  )  。 例如點號(.)表示匹配除換行符以外的任何字元,管道符(|)則有點類似於邏輯或操作。我們可以在      這個**上檢視正則的手冊。help(re),我們可以看到這些方法:match,fullmatch,search,split,findall......等。

下面我們來舉幾個例子。例如我們要對以下這些資料進行匹配「 [email protected]   advantage  314159265358 1892673 3.14 little girl try_your_best 56 [email protected]  python3」

1、匹配advantage,我們用search方法來實現,如果匹配成功它會返回位置。

可以看到,我們只找到了advantage第乙個字母a的位置span=(21,22)。如果要想匹配整個單詞呢?

可以看到我們match到了advantage。其中 (.)   表示匹配除了換行符體外的任何字元, (+)   表示匹配前面的子表示式一次或者多次。

2、匹配郵箱位址

其中中括號裡面的0-9表示0123456789,a-z表示26個字母,{}表示匹配裡面的內容一次或多次。這次我們用findall(),他能找出所有滿足正則規則的字串,並返回這些字串。當然,上面的規則可以繼續完善,以至於可以匹配任何的郵箱。

python爬蟲 正規表示式

正規表示式是十分高效而優美的匹配字串工具,一定要好好掌握。利用正規表示式可以輕易地從返回的頁面中提取出我們想要的內容。1 貪婪模式與非貪婪模式 python預設是貪婪模式。貪婪模式,總是嘗試匹配盡可能多的字元 非貪婪模式,總是嘗試盡可能少的字元。一般採用非貪婪模式來提取。2 反斜槓問題 正規表示式裡...

Python爬蟲 正規表示式

一般的正規表示式都可直接到正則生成工具處生成,常見匹配字元 re.match及其常規匹配 re.match 嘗試從字串的起始位置匹配乙個模式,如果不是起始位置匹配成功的話,match 就返回none。re.match pattern,string,flags 0 返回的為乙個物件,其中span代表長...

Python 爬蟲 正規表示式

常見的正則字元和含義如下 匹配任意字元,除了換行符 匹配字串開頭 匹配字串末尾 匹配括號內表示式,也表示乙個組 s 匹配空白字元 s 匹配任何非空白字元 d 匹配數字,等價於 0 9 d 匹配任何非數字,等價於 0 9 w 匹配字母數字,等價於 a za z0 9 w 匹配非字母數字,等價於 a z...