Python 正規表示式(爬蟲篇)

2021-10-10 19:07:50 字數 1859 閱讀 1321

實際上爬蟲有四個主要步驟

取:去掉對我們沒用處的資料

處理資料:按照我們想要的方式儲存和使用

我們爬下來的資料大部分都是全部的網頁,這些資料有時候是很龐大並且混亂的,大部分的董事是我們不關心的,所以我們需要將之按我們的需要過濾和匹配出來。

那麼對於文字的過濾或者規則的匹配,最強大的就是正規表示式,是 python 爬蟲世界

裡必不可少的神兵利器。

正規表示式,又稱規則表示式,通常被用來檢索、替換那些符合某個模式(規則)的文字。

正規表示式是對字串操作的一種邏輯公式,就是用事先定義好的一些特定字元、及這

些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過

濾邏輯。

給定乙個正規表示式和另乙個字串,我們可以達到如下的目的:

元字元含義

^匹配行首

$匹配行尾

?重複匹配 0 次或 1 次

*重複匹配 0 次或更多次

+重複匹配 1 次或更多次 1

重複 n 次或更多次

重複 n~m 次

重複 n 次

[a-z]

任意 a-z 的字母

[abc]

a/b/c 中的任意乙個字元

[^123abc]

匹配除了 123 abc 這幾個字元以外的任意字元

.匹配除換行符以外的任意乙個字元

\b匹配單詞的開始和結束

\b匹配不是單詞開始和結束的位置

\d匹配數字

\d匹配任意非數字的字元

\w匹配字母,數字,下劃線

\w匹配任意不是字母,數字,下劃線的字元

\s匹配任意空白,包括空格,製表符(tab),換行符

\s匹配任意不是空白符的字元

[^a]

匹配除了 a 以外的任意字元

123|abc

匹配 123 或者 abc

在 python 中,我們可以使用內建的 re 模組來使用正規表示式。有一點需要特別注意

的是,正規表示式使用對特殊字元進行轉義,所以如果我們要使用原始字串,只需加乙個

r 字首。

re 模組的一般使用步驟如下:

第一步:使用 compile()函式將正規表示式的字串形式編譯為乙個 pattern 物件。

第二步:通過 pattern 物件提供的一系列方法對文字進行匹配查詢,獲得匹配結果,一

個 match 物件。

第三步:最後使用 match 物件提供的屬性和方法獲得資訊,根據需要進行其他的操作。

compile 函式

compile 函式用於編譯正規表示式,生成乙個 pattern 物件,它的一般使用形式如下:

pattern = re.

compile

('正規表示式'

)

在上面,我們已將乙個正規表示式編譯成 pattern 物件,接下來,我們就可以利用 pattern 的

一系列方法對文字進行匹配查詢了。

pattern 物件的一些常用方法主要有:

名稱描述

match

從起始位置開始查詢,一次匹配

search

從任何位置開始查詢,一次匹配

findall

全部匹配,返回列表

finditer

全部匹配,返回迭代器

split

分割字串,返回列表

sub替換

[\u4e00-\u9fa5]

匹配中文

group()

如果分組,需要使用(),可以使用group(n)來獲取相應組的內容。

分組的反向引用:

反向引用不代表分組,只是前面的分組值的引用。

正規表示式 py爬蟲篇

re.match試著從字串的起始位置匹配乙個模式,若不能從起始位置匹配成功,match 就返回none.import re content hello 123 4567 world this demo res re.match hello s d d d s d s w sdemo content ...

python爬蟲 正規表示式

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

Python爬蟲 正規表示式

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