正則表達式是處理字符串的強大工具,它有自己特定的語法結構,對於爬蟲來說,它可以幫我們從HTML例提取我們想要的信息,實際上正則表達式應用非常廣泛,如數據挖掘、數據分析、網絡爬蟲、輸入有效性驗證等。在python中我們可以用re模塊來實現正則表達式。
正則表達式的功能非常強大,短短一節是講不完的,對於新手來說,學習正則表達式可以瀏覽廖雪峯的官方網站。
這裏列出了常用的幾個匹配規則:
模式 | 描述 |
---|---|
\w | 匹配字母、數字及下劃線 |
\W | 匹配不是字母、數字及下劃線的字符 |
\s | 匹配任意空白字符,等價於[\t\n\r\f] |
\S | 匹配任意非空白字符 |
\d | 匹配任意數字,等價於[0-9] |
\D | 匹配任意非數字 |
\A | 匹配字符串開頭 |
\Z | 匹配字符串結尾,如果存在換行,則匹配到換行前的結束字符串 |
\z | 匹配字符串結尾,如果存在換行,還會匹配到換行符 |
\G | 匹配最後匹配完成的位置 |
\n | 匹配一個換行符 |
\t | 匹配一個製表符 |
^ | 匹配一行字符串的開頭 |
$ | 匹配一行字符串的結尾 |
. | 匹配任意字符 |
[…] | 用來表示一組字符,比如[abc]匹配a、b或c |
[^…] | 匹配不在[]內的字符,比如[^abc]匹配除了a、b或c以外的字符 |
* | 匹配0個或多個表達式 |
+ | 匹配1個或多個表達式 |
? | 匹配0個或1個前面的正則表達式定義的片段、非貪婪方式 |
{n} | 精確匹配n個前面的表達式 |
{n, m} | 匹配n到m次由前面表達式定義的片段,貪婪方式 |
a | b | 匹配a或b |
() | 匹配括號內的表達式,也表示一個組 |
通過前幾章我們已經學習瞭如何構建請求、如何獲得網頁信息以及使用正則表達式提取我們需要的內容,目前爲止我們已經可以使用爬蟲獲取一些有用的信息了,下一章我們開始構建我們的第一個爬蟲項目,如果你想了解更多內容,可以關注公衆號“機器圖騰”,裏面可以免費獲取python學習資源、網絡爬蟲教程等,每週不定時更新一些有趣的python小項目。