国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > Python > 正文

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

2020-01-04 17:49:42
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Python的爬蟲包Beautiful Soup中用正則表達式來搜索的技巧,包括使用正則表達式去搜索多種可能的關鍵字以及查找屬性值未知的標簽等,需要的朋友可以參考下
 

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

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

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

<div class="icon_col">    <h1 class="h1user">crifan</h1></div>

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

class="h1user test1"

class="h1user test2"

就找不到了。

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

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

了。

就可以寫成:

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">
之類的標簽,xxx的內容未知(可變)的前提下

想要查找到對應的此div標簽,之前不知道如何實現。
如果寫成:

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

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

<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>

可以通過:

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

去查找到屬性包含aria-lable的div標簽的。

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

用BeautifulSoup查找未知屬性值,但是已知屬性的名字的標簽

則此處,就可以針對:

<div aria-lable="xxx">

去用:

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

就可以查找到對應的包含屬性aria-lable的div標簽了。


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 南宁市| 大理市| 乌兰浩特市| 三穗县| 苍梧县| 图木舒克市| 新营市| 万载县| 永春县| 寻乌县| 鸡泽县| 临邑县| 江川县| 巴塘县| 定州市| 固阳县| 盐津县| 大名县| 浦江县| 麦盖提县| 舞阳县| 邮箱| 修文县| 交城县| 莒南县| 隆回县| 新竹县| 泊头市| 永吉县| 黄石市| 新化县| 南城县| 灯塔市| 石景山区| 翁牛特旗| 哈密市| 唐海县| 治多县| 海城市| 平湖市| 得荣县|