爬蟲(chóng)解析器

一、 正則表達(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ī)則。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

友情鏈接更多精彩內(nèi)容