爬蟲學習筆記 2 正規表示式

2021-08-30 19:36:28 字數 1135 閱讀 3885

在爬蟲學習中,經常會用到正規表示式去匹配網頁源**中的特定字串,例如網頁鏈結,標題等相關資訊。在處理這類問題上,正規表示式可以說是一大利器。當然在python中還有類似的較為簡單的方法處理這類問題,比如beautifulsoup,pyquery,xpath等相應的庫,當這些庫失靈的時候,兜兜轉轉回到最原始的正規表示式,你驀然回首,就會發現資料正乖巧的躺在你的資料庫中。

敲黑板,說重點

正規表示式可以用來提取某字串中的符合要求

的字元,或者將特定的字元進行修改(替換),刪除操作。將需要輸出的匹配字串用小

括號括起來,然後可以用group()的方法進行呼叫。例如:

line = "booooobabadby123"

regex_str = ".*(b.*b).*"

match_obj = re.match(regex_str,line)

if match_obj:

print(match_obj.group(1)

爬蟲中常用的特殊字元

"^ " 這個符號表示字串的開始位置,相當於是標記字串的第乙個字元,相等就開始後面的匹配,不相等就結束。特別注意,如果在中括號中出現,則表示除此之外的字元,例如 [^h]表示除了h之外的其餘字元。

「$」 代表字串結束符,如果想匹配其本身,則需在前面加「\」

「 . 」 表示匹配任意字元

" * " 表示出現零次或者多次

「 ? 」 表示前面的字元出現零次或者一次,也可以表示非貪婪匹配。

「 + 」 表示最少出現一次

表示前面的字元出現兩次,表示前面的字元最少出現兩次,表示前面的字元最少出現兩次,最多出現五次。

中括號的妙用

[abcd]代表匹配abcd中的任意字元

[^a]代表匹配除了字元a以外的字元

[a-za-z0-9]代表匹配所有的字母和數字

[.] 匹配「 . 」,等價於.

其餘常用匹配:

\s 代表空格,\s代表除空格以外的字元

\w 代表字母或數字或下劃線或漢字 等價於 '[a-za-z0-9_]

\d代表數字

這些是比較常用的匹配規則,只是龐大正則系統的冰山一角,當然這些應用於日常的爬蟲工作已經足夠,在實際的應用中需要什麼再去繼續探索學習吧,畢竟學習永無止境。

爬蟲學習筆記 正規表示式

正規表示式re import re 全稱 regular expression 首先,簡單表達一組字串 pn pyn pytn pythn python regex p y yt yth ytho n p re.compile regex re的作用 1,表達文字型別的特徵 2,同時查詢或者替換一組...

python爬蟲學習2 正規表示式

正規表示式我感覺是爬蟲的難點與關鍵,看各種文章學習乙個晚上後,總結如下 表任意字元 表string起始 表string 結束 跟在字元後面表示,0個 多個,1個 多個,0個或者1個 符合條件的情況下,匹配的盡可能少 限制 匹配的貪婪性 匹配此前的字元,重複m次 m到n次,m,n可以省略 舉個例子 a...

爬蟲 正規表示式

正規表示式 regular expression 是一種字串匹配的模式 pattern 它可以檢查乙個字串是否含有某種子串 替換匹配的子串 提取某個字串中匹配的子串。匯入正則模組 importre 字元匹配 rs re.findall abc adc print rs rs re.findall a...