在前幾篇文章中我們使用了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...