re模組(集中了正規表示式所有的功能)只想抓取禮物影象的相關資訊¨郵箱位址
[a~za~z0-9
\._+]+@[
a~za~z
]+\.(
com|edu|net)
其中[a~za~z0-9\._+]+表示乙個字元要滿足中括號裡的範圍,字元可以是a~z或者a~z或者0-9或者「."(¨
元字元包括:
. *
? + ^ $ | \
,所以需要匹配元字元時需要加上反斜線
\ ),可以出現1到n次
接著加上「@」字元
[a~za~z]+表示匹配中括號的字元
接著加上「."
最後加上圓括號裡選擇的乙個內容
注:\d匹配任意數字字元[0-9]
\w匹配任何包含下劃線的字元[a~za~z0-9_]
例如:¨
對應正規表示式:\.\.\/img\/gifts\/img.*\.jpg
from urllib.request import urlopen
from bs4 import beautifulsoup
import re
html=urlopen('')
bs=beautifulsoup(html,'html.parser')
images=bs.find_all('img',)
for image in images:
print(image['src'])
//上一句可以換成
imagesrc=image.get("src")
print(imagesrc)
結果:../img/gifts/img1.jpg
../img/gifts/img6.jpg
獲取標籤的屬性資訊 可以是href
表示式 .* 就是單個字元匹配任意次,即貪婪匹配。 表示式 .*? 是滿足條件的情況只匹配一次,即最小匹配.
比如:使用/<.*>/匹配的結果為:h1>chapter 1 - 介紹正規表示式使用/<.*?>/匹配結果為:h1。
查詢括號裡的內容
import re
a='gasfxxlxsdhfkjhfbdxxll45xx'
info=re.findall('xx(.*?)x',a)
print(info)
結果:['l', 'll45']
貪心法(盡可能大的去匹配字元)
import re
a='gasfxxlxsdhfkjhfbdxxll45xx'
info=re.findall('xx(.*)x',a)
print(info)
結果:['lxsdhfkjhfbdxxll45x']
爬取**:
import requests
import re
import time
headers=
f=open('e:/aa.txt','a+')
def get_info(url):
res=requests.get(url,headers=headers)
if res.status_code==200://表示http請求成功
contents=re.findall('',res.content.decode('utf-8'),re.s)
for content in contents:
f.write(content+'\n')
else:
pass
if __name__== '__main__': //這裡一定記得需要每一邊的雙下劃線
urls=[''.format(str(i)) for i in range(2,9)]
for url in urls:
get_info(url)
time.sleep(1)
f.close()
如果使用貪心演算法,則中間的標籤都會包含在內
正規表示式的運用
靶場位址 原理 又稱規則表示式,電腦科學的乙個概念,正規表示式通常被用來檢索 替換那些符合某個模式 規則的文字 這裡是指將正則匹配到的值賦值給變數 regular if判斷語句,這裡是指當變數 regular有值時將輸出變數key,也就是flag 那麼我只需要構造成能成功匹配正則的值就能成功輸出fl...
中運用正規表示式
看到大家討論這方面的東西,作點貢獻聊表各位高手對這個版快的無私奉獻 oops 如果使用者熟悉linux下的sed awk grep或vi,那麼對正規表示式這一概念肯定不會陌生。由於它可以極大地簡化處理字串時的複雜度,因此現在已經在許多linux實用工具中得到了應用。千萬不要以為正規表示式只是perl...
正規表示式簡單運用
在學習中呢,剛認識到正則的一些用處,好處,那麼在這裡就講講正規表示式的一些簡單運用。我希望能讓你們了解到什麼是正規表示式,同時能讓自己加深對正規表示式的理解。第一次看到正規表示式的時候呢,根本看不懂這是什麼。就例如 nkeyup value value.replace u4e00 u9fa5 g,o...