#!/usr/bin/env python
# -*- coding: utf-8 -*-
## 乙個小爬蟲
其中用的規則是"src=\"(.+\.jpg)\" pic_ext"
,可是這樣會出現問題:
如:網頁源**中會有這樣的串:
情況一:引用非jpg的標籤後連著乙個引用jpg的標籤
匹配出來的url:
" pic_ext="png" width="30" height="30">
pic_ext="jpeg"
height="350"
width="560">
pic_type="0"
class="bde_image"
src=""
pic_ext="bmp"
提取的url:
那怎麼處理第一種情況呢?
通過觀察我們發現,我們想要的其實是src=後面雙引號之間的內容,並且是兩個相互匹配的雙引號。也就是說,""
之間是不應有其他的"
的。所以,問題就很容易了,只要把.
換成[^\"]
匹配的是出來"
之外的字元就行了。
改後,正則變成這樣:rule = r"src=\"([^\"]+?\.jpg)\" pic_ext"
現在就能輕鬆地抓取網頁上啦!
正規表示式貪婪與非貪婪模式:
python 正規表示式應用
同樣的概念也適用於正規表示式 在模式匹配發生之前,正規表示式模式必須編譯 成正規表示式物件。由於正規表示式在執行過程中將進行多次比較操作,因此強烈建議使 用預編譯。而且,既然正規表示式的編譯是必需的,那麼使用預編譯來提公升執行效能無疑 是明智之舉。re.compile 能夠提供此功能。一 使用 co...
正規表示式應用
d 非負整數 正整數 0 0 9 1 9 0 9 正整數 d 0 非正整數 負整數 0 0 9 1 9 0 9 負整數 d 整數 d 非負浮點數 正浮點數 0 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 正浮點數 d 非正浮點數 負浮點數 0 0 9 0 ...
正規表示式(應用)
在此頁面寫正規表示式,可以提供參考,和進行校驗 應用於前端 匹配任意長度的大小寫字母與數字 a za z0 9 匹配任意長度且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字 a za z0 9 匹配長度小於20且不為空的大小寫字母與數字與漢字 a za z0...