11.正規表示式特殊符號及用法
正規表示式特殊符號主要有兩部分構成,其一是元字元,其二是由」\」加上字母構成的。
元字元:
舉個栗子:
>>>re.search(r'fish(c|d)','fishc')
<_sre.sre_matchobject span="(0," match="fishc">
>>>re.search(r'fish(c|d)','fishd')
<_sre.sre_matchobject span="(0," match="fishd">
>>>re.search(r'^fish','fishsdfa')
<_sre.sre_matchobject span="(0," match="fish">
>>>re.search(r'fish$','asdfsdffish')
<_sre.sre_matchobject span="(7," match="fish">
>>>re.search(r'(fishc)\1','fishcfishc')
<_sre.sre_matchobject span="(0," match="fishcfishc">
>>>re.search(r'[.]','i love fish.com')
<_sre.sre_matchobject span="(11," match=".">
>>>re.findall(r'[a-z]','fishc.com')
['i', 's', 'h','c', 'o', 'm']
>>>re.findall(r'[^a-z]','fishc.com')
['f', 'c', '.']
注意:[^a-z] 去反
>>> re.search(r'fishc','fishcccc')
<_sre.sre_match object span="(0,">
>>> re.search(r'(fishc)','fishcfishcfishc')
<_sre.sre_match object span="(0,">
檢視下圖:
貪婪匹配與非貪婪匹配
>>> s ="i love you forever
">>>re.search(r'<.>',s)
<_sre.sre_matchobject span="(0," match="i love you forever
">
>>>re.search(r'<.>',s)
<_sre.sre_matchobject span="(0," match="">
此時?是取消貪婪匹配的
模式物件
如果需要重複使用某個正規表示式,那麼先將正規表示式編譯成模式物件,使用「re.compile」方法編譯。
舉個栗子:
>>>import re
>>> p =re.compile(r'[a-z]')
>>>type(p)
>>>p.search('i love you forver')
<_sre.sre_matchobject span="(0," match="i">
>>>p.findall("i love you forver")
['i']
正規表示式嚴格匹配包括空格(search用法)
舉個栗子:
>>>result = re.search(r' (\w+) (\w+)','i love you forever')
>>>result
<_sre.sre_matchobject span="(1," match=" love you">
>>>result.group()
' love you'
>>>result.group(1)
'love'
>>>result.group(2)
'you'
>>>result.span()
(1, 10)
乙隻爬蟲帶你看世界 4
7.模擬瀏覽器訪問,隱藏python自身資訊 原理 當瀏覽器訪問伺服器上的內容時,伺服器會抓取訪問資訊中header中的user agent資訊,若user agent中顯示有python資訊等,則視為爬蟲程式,此時伺服器會阻止它進行資訊爬取。為了隱藏爬蟲程式,此時使用模擬瀏覽器訪問的方式來進行資訊...
乙隻爬蟲的產生
以下環境基於py2.7 爬蟲架構 url管理器 處理待爬url以及爬過的url,防止重複抓取以及死迴圈 網頁解析器 解析出想要的資料,以及捕捉新的url位址交給url管理器進行處理繼續抓取。過濾資料,拿到有價值的資料進行處理。資料的存放 python 的 set集合 可以防止資料的重複 需要長期儲存...
乙隻R語言de爬蟲
該爬蟲爬取得是某地新聞內容 pa1 用於找到href鏈結 pa2 用於根據鏈結找到新聞內容 pa3 用於儲存進資料庫 嘿嘿 爬蟲pa1 library xml 引入xml包 givehref function rootnode givenames function rootnode getpage ...