久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

Python的爬蟲包Beautiful Soup中用正則表達式來搜索

 powerbaby 2016-01-28
篇文章主要介紹了Python的爬蟲包Beautiful Soup中用正則表達式來搜索的技巧,包括使用正則表達式去搜索多種可能的關(guān)鍵字以及查找屬性值未知的標(biāo)簽等,需要的朋友可以參考下

Beautiful Soup使用時,,一般可以通過指定對應(yīng)的name和attrs去搜索,,特定的名字和屬性,,以找到所需要的部分的html代碼,。

但是,,有時候,,會遇到,,對于要處理的內(nèi)容中,其name或attr的值,,有多種可能,,尤其是符合某一規(guī)律,此時,,就無法寫成固定的值了,。

所以,就可以借助正則表達式來解決此問題,。
比如,,

1
2
3
<div class="icon_col">
    <h1 class="h1user">crifan</h1>
</div>

對應(yīng)的BeautifulSoup代碼如下:

1
h1userSoup = soup.find(name="h1", attrs={"class":"h1user"});

而如果html是這種:

1
2
3
4
5
<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的部分的代碼,,則之前的寫法,,就只能找到單個的class="h1user"的部分,剩下的兩個

1
class="h1user test1"

1
class="h1user test2"

就找不到了,。

那么,,此時,,就可以用到,BeautifulSoup中非常好用的,,非常強大的功能:

attrs中支持正則表達式的寫法

了,。

就可以寫成:

1
h1userSoupList = soup.findAll(name="h1", attrs={"class":re.compile(r"h1user(\s\w+)?")});

就可以一次性地,找到:

1
2
3
4
5
class="h1user"
class="h1user test1"
class="h1user test2"

了,。

1
<div aria-lable="xxx">
之類的標(biāo)簽,,xxx的內(nèi)容未知(可變)的前提下

想要查找到對應(yīng)的此div標(biāo)簽,之前不知道如何實現(xiàn),。
如果寫成:

1
sopu.findAll("div", attrs={"aria-lable": "xxx"});

則xxx必須寫出來,如果不寫出來屬性值,,也就沒法用上attrs了,,就沒法實現(xiàn)此處查找特性屬性值的標(biāo)簽了。
所以針對:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<div aria-label="5星, 747 份評分" 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 份評分
 </span>
</div>

可以通過:

1
soup.findAll("div", attrs={"aria-lable": True});

去查找到屬性包含aria-lable的div標(biāo)簽的,。

所以,,對于上面的,之前不知道如何處理:

用BeautifulSoup查找未知屬性值,,但是已知屬性的名字的標(biāo)簽

則此處,,就可以針對:

1
<div aria-lable="xxx">

去用:

1
sopu.findAll("div", attrs={"aria-lable": True});

就可以查找到對應(yīng)的包含屬性aria-lable的div標(biāo)簽了。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點擊一鍵舉報,。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約