Python爬蟲實踐 六 正規表示式 1

2021-07-13 18:59:23 字數 1782 閱讀 1828

正規表示式是對字串操作的一種==邏輯公式==,就是用事先定義好的一些特定字元、及這些特定字元的組合,組成乙個「規則字串」,這個「規則字串」用來表達對字串的一種過濾邏輯。

正規表示式的大致匹配過程是:

依次拿出表示式和文字中的字元比較,

如果每乙個字元都能匹配,則匹配成功;一旦有匹配不成功的字元則匹配失敗。

語法規則匹配

數量詞的貪婪模式與非貪婪模式

正規表示式通常用於在文字中查詢匹配的字串。

例如:正規表示式」ab*」如果用於查詢」abbbc」,將找到」abbb」。而如果使用非貪婪的數量詞」ab*?」,將找到」a」

==注:我們一般使用非貪婪模式來提取。==

反斜槓問題

與大多數程式語言相同,正規表示式裡使用」\」作為轉義字元,這就可能造成反斜槓困擾。

假如你需要匹配文字中的字元」\」,那麼使用程式語言表示的正規表示式裡將需要4個反斜槓」\\」:前兩個和後兩個分別用於在程式語言裡轉義成反斜槓,轉換成兩個反斜槓後再在正規表示式裡轉義成乙個反斜槓。

python裡的原生字串==很好地解決了這個問題==,這個例子中的正規表示式可以使用r」\\」表示。同樣,匹配乙個數字的」\\d」可以寫成r」\d」。有了原生字串,媽媽也不用擔心是不是漏寫了反斜槓,寫出來的表示式也更直觀勒。

python re模組

python 自帶了re模組,它提供了對正規表示式的支援。主要用到的方法列舉如下

==返回pattern物件==

re.compile(string[,flag])
• re.i(全拼:ignorecase): 忽略大小寫(括號內是完整寫法,下同)

• re.m(全拼:multiline): 多行模式,改變'^'和'$'的行為(參見上圖)

• re.s(全拼:dotall): 點任意匹配模式,改變'.'的行為

• re.l(全拼:locale): 使預定字元類 \w

\w\b

\b\s

\s 取決於當前區域設定

• re.u(全拼:unicode): 使預定字元類 \w

\w\b

\b\s

\s\d

\d 取決於unicode定義的字元屬性

• re.x(全拼:verbose): 詳細模式。這個模式下正規表示式可以是多行,忽略空白字元,並可以加入注釋。

==以下為匹配所用函式==

re.match(pattern, string[, flags])

re.search(pattern, string[, flags])

re.split(pattern, string[, maxsplit])

re.findall(pattern, string[, flags])

re.finditer(pattern, string[, flags])

re.sub(pattern, repl, string[, count])

re.subn(pattern, repl, string[, count])

python爬蟲 六 正則提取資料

首先抓 取豆瓣t op 250的網頁 首先抓取豆瓣top250的網頁 首先抓取豆瓣 top2 50的網 頁 首先看主函式 import urllib.request,parser from bs4 import beautifulsoup import re findlink re.compile ...

Python爬蟲實踐

爬取的是盜版網的 免費 三寸人間 閱讀 請支援正版 以下是源 from urllib import request from bs4 import beautifulsoup import re 獲取html原始碼 response request.urlopen html response.rea...

python 爬蟲實踐

詳解 python3 urllib requests 官方文件 timeout 引數是用於設定請求超時時間。單位是秒。cafile和capath代表 ca 證書和 ca 證書的路徑。如果使用https則需要用到。context引數必須是ssl.sslcontext型別,用來指定ssl設定 cadef...