2014-11-07 55 views
1

我正在使用美麗的湯解析設計不佳的網頁。如何僅選擇具有類似ID的DIV

目前,我需要的是選擇網頁的評論部分,但每個評論被視爲一個DIV,每個都有一個像「IAMCOMMENT_00001」的ID,但就是這樣。沒有課(這會有很大的幫助)。

所以我不得不搜索所有以「IAMCOMMENT」開頭的DIV,但我無法弄清楚如何做到這一點。我能找到的最接近的是SoupStrainer,但無法理解如何使用它。

我該如何做到這一點?

+0

發表您的嘗試。顯示你的代碼。 – 2014-11-07 03:11:14

回答

0

如果你想分析的形式評論,首先你需要找到你的HTML的評論。要做到這一點的方法是這樣的:

import re 
from bs4 import BeautifulSoup, Comment 

soup = BeautifulSoup(myhtml) 
comments = soup.find_all(text=lambda text: isinstance(text, Comment)) 

找到註釋裏面的div S,

for comment in comments: 
    cmnt_soup = BeautifulSoup(comment) 
    divs = cmnt_soup.find_all('div', attrs={"id": re.compile(r'IAMCOMMENT_\d+')}) 

    # do things with the divs 
1

我會用BeautifulSoup's內置find_all功能:

from bs4 import BeautifulSoup 
soup = BeautifulSoup(yourhtml) 
soup.find_all('div', id_=re.compile('IAMCOMMENT_'))