一、 正則表達(dá)式特殊符號(hào)含義
A 匹配規(guī)則
1、{}實(shí)質(zhì)也是限定詞的用法,限定前面字符所出現(xiàn)的次數(shù),跟在()后面就是限定括號(hào)中的內(nèi)容所出現(xiàn)的次數(shù)。一般有三種模式:
{數(shù)字}、{數(shù)字,}、{數(shù)字,數(shù)字}
2、豎線 | 實(shí)質(zhì)上就是或(or)的關(guān)系
3、[] 其意思是方括號(hào)中的字符只要滿足其中任何一個(gè)就可以。
[^字符]表示取除方括號(hào)字符以外所有的字符
4、[\u4E00-\u9FA5] 匹配一個(gè)漢字,要是想匹配多個(gè)漢字那就在方括號(hào)后邊加一個(gè)加號(hào):[\u4E00-\u9FA5]+
注意:要匹配多個(gè)漢字時(shí),漢字之間必須連續(xù),不能有其他字符,如字母、空格,標(biāo)點(diǎn)等。
5、\w 匹配
借鑒文章:
https://blog.csdn.net/weixin_34235371/article/details/88262507
B 方法
1、match() 從頭開(kāi)始匹配 match('規(guī)則', html,re.S)
2、search() 掃描整個(gè)字符串,可不從頭匹配,但只匹配到第一個(gè)符合規(guī)則的,search('規(guī)則',html,re.S)
3、findall() 掃描整個(gè)字符串,可不從頭匹配,匹配到所有符合規(guī)則的 findall('規(guī)則',html,re.S)
4、sub() 替換 / 去除某些元素 sub('規(guī)則',要去替換的元素,html)
5、complie() 將正則表達(dá)式編譯成正則表達(dá)式對(duì)象,以便后面匹配中復(fù)用 compile(規(guī)則)
二、 BeautifulSoup(from bs4 import BeautifulSoup)
BeautifulSoup(html,'解析器')
(1) BeautifulSoup支持的解析器有:
| 解析器 | 使用方法 | 優(yōu)勢(shì) | 劣勢(shì) |
|---|---|---|---|
| python標(biāo)準(zhǔn)庫(kù) | BeautifulSoup(markup,'html.paeser') | python的內(nèi)置標(biāo)準(zhǔn)庫(kù)、執(zhí)行速度適中、文檔容錯(cuò)能力強(qiáng) | python 3.2.2之前版本文檔容錯(cuò)能力差 |
| lxml HTML解析器 | BeautifulSoup(markup,'lxml') | 速度快、文檔容錯(cuò)能力強(qiáng) | 需要安裝C語(yǔ)言庫(kù) |
| lxml XML解析器 | BeautifulSoup(markup,'xml') | 速度快、唯一支持XML的解析器 | 需要安裝C語(yǔ)言庫(kù) |
| html5lib | BeautifulSoup(markup,'html5lib') | 最好的容錯(cuò)性、以瀏覽器的方式解析文檔、生成HTM5 格式的文檔 | 速度慢、不依賴外部擴(kuò)展 |
(2) 方法
find_all(name,strrs) 找出所有符合規(guī)則的
find(name,atrrs) 找出第一個(gè)符合規(guī)則的
CSS選擇器select() 找出所有符合規(guī)則的 # 推薦使用這個(gè),因?yàn)閏hrome開(kāi)發(fā)者工具能夠復(fù)制規(guī)則。