Python的爬蟲包Beautiful Soup中用正則表達(dá)式來搜索
Beautiful Soup使用時(shí),一般可以通過指定對(duì)應(yīng)的name和attrs去搜索,特定的名字和屬性,以找到所需要的部分的html代碼。
但是,有時(shí)候,會(huì)遇到,對(duì)于要處理的內(nèi)容中,其name或attr的值,有多種可能,尤其是符合某一規(guī)律,此時(shí),就無法寫成固定的值了。
所以,就可以借助正則表達(dá)式來解決此問題。
比如,
<div class="icon_col">
<h1 class="h1user">crifan</h1>
</div>
對(duì)應(yīng)的BeautifulSoup代碼如下:
h1userSoup = soup.find(name="h1", attrs={"class":"h1user"});
而如果html是這種:
<div class="icon_col">
<h1 class="h1user">crifan</h1>
<h1 class="h1user test1">crifan 123</h1>
<h1 class="h1user test2">crifan 456</h1>
</div>
那么想要一次性地找到所有的,符合條件的h1的部分的代碼,則之前的寫法,就只能找到單個(gè)的class="h1user"的部分,剩下的兩個(gè)
class="h1user test1"
和
class="h1user test2"
就找不到了。
那么,此時(shí),就可以用到,BeautifulSoup中非常好用的,非常強(qiáng)大的功能:
attrs中支持正則表達(dá)式的寫法
了。
就可以寫成:
h1userSoupList = soup.findAll(name="h1", attrs={"class":re.compile(r"h1user(\s\w+)?")});
就可以一次性地,找到:
class="h1user" class="h1user test1" class="h1user test2"
了。
<div aria-lable="xxx">
想要查找到對(duì)應(yīng)的此div標(biāo)簽,之前不知道如何實(shí)現(xiàn)。
如果寫成:
sopu.findAll("div", attrs={"aria-lable": "xxx"});
則xxx必須寫出來,如果不寫出來屬性值,也就沒法用上attrs了,就沒法實(shí)現(xiàn)此處查找特性屬性值的標(biāo)簽了。
所以針對(duì):
<div aria-label="5星, 747 份評(píng)分" class="rating" role="img" tabindex="-1"> <div> <span class="rating-star"> </span> <span class="rating-star"> </span> <span class="rating-star"> </span> <span class="rating-star"> </span> <span class="rating-star"> </span> </div> <span class="rating-count"> 747 份評(píng)分 </span> </div>
可以通過:
soup.findAll("div", attrs={"aria-lable": True});
去查找到屬性包含aria-lable的div標(biāo)簽的。
所以,對(duì)于上面的,之前不知道如何處理:
用BeautifulSoup查找未知屬性值,但是已知屬性的名字的標(biāo)簽
則此處,就可以針對(duì):
<div aria-lable="xxx">
去用:
sopu.findAll("div", attrs={"aria-lable": True});
就可以查找到對(duì)應(yīng)的包含屬性aria-lable的div標(biāo)簽了。
- 零基礎(chǔ)寫python爬蟲之神器正則表達(dá)式
- python3爬蟲之入門基礎(chǔ)和正則表達(dá)式
- python爬蟲 正則表達(dá)式使用技巧及爬取個(gè)人博客的實(shí)例講解
- python爬蟲正則表達(dá)式之處理換行符
- 玩轉(zhuǎn)python爬蟲之正則表達(dá)式
- Python爬蟲正則表達(dá)式常用符號(hào)和方法
- Python爬蟲之正則表達(dá)式基本用法實(shí)例分析
- Python爬蟲教程之利用正則表達(dá)式匹配網(wǎng)頁內(nèi)容
- Python 爬蟲學(xué)習(xí)筆記之正則表達(dá)式
- Pyhton爬蟲知識(shí)之正則表達(dá)式詳解
相關(guān)文章
對(duì)Python 兩大環(huán)境管理神器 pyenv 和 virtualenv詳解
今天小編就為大家分享一篇對(duì)Python 兩大環(huán)境管理神器 pyenv 和 virtualenv詳解,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-12-12
詳解Django定時(shí)任務(wù)模塊設(shè)計(jì)與實(shí)踐
這篇文章主要介紹了詳解Django定時(shí)任務(wù)模塊設(shè)計(jì)與實(shí)踐,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
python OpenCV學(xué)習(xí)筆記直方圖反向投影的實(shí)現(xiàn)
這篇文章主要介紹了python OpenCV學(xué)習(xí)筆記直方圖反向投影的實(shí)現(xiàn),小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-02-02
python爬蟲項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn)
這篇文章主要介紹了python爬蟲項(xiàng)目設(shè)置一個(gè)中斷重連的程序的實(shí)現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-07-07
PyCharm安裝配置Qt Designer+PyUIC圖文教程
這篇文章主要介紹了PyCharm安裝配置Qt Designer+PyUIC圖文教程,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-05-05

