正則表達式在文本匹配中使用廣泛。網絡爬蟲中往往涉及對頁面某些信息的提取,正則表達式能夠極大的簡化我們對信息的篩選過程。
對正則表達式的學習可以參考
http://www.runoob.com/python/python-reg-expressions.html
我們以對一個郵箱的正則匹配為例,介紹正則表達式的應用。
一個郵箱地址可以分解成以下幾種規則:
- 郵箱地址的第一部分至少包括一種內容:大寫字母,小寫字母,數字0-9,點號(.),加號(+)或者下划線(_),對應的正則表達式為[A-Za-z0-9\._+]+
- 之后,包含一個@符號,在@之后,郵箱地址至少包含一個大寫或小寫字母,對應正則式為[A-Za-z]+,然后包含一個點號,最后郵箱地址以com、org、edu、net等域名結尾,(com|org|edu|net)
- 將這幾條規則匯總,可以得到匹配郵箱的正則表達式為:
[A-Za-z0-9\._+]+@[A-Za-z]+\.(com|org|edu|net)
利用這一表達式我們就可以很方便的解析出網頁中的郵箱地址而不需要寫很多的字符判斷。
正則表達式不僅可以獨立使用,還可以用在BeautifulSoup中,事實上,大多數支持字符串參數的函數都可以使用正則表達式實現。
如在BeautifulSoup的find函數中,find("img",{“src”:re.compile("xxx")}可以用來查找符合規則的圖像。
