實際上爬蟲有四個主要步驟
取:去掉對我們沒用處的資料
處理資料:按照我們想要的方式儲存和使用
我們爬下來的資料大部分都是全部的網頁,這些資料有時候是很龐大並且混亂的,大部分的董事是我們不關心的,所以我們需要將之按我們的需要過濾和匹配出來。
那麼對於文字的過濾或者規則的匹配,最強大的就是正規表示式,是 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代表長...