2017-07-02 56 views
3

我已經設法拉出了我正在抓取的一個站點的大部分屬性,但試圖提取div聲明器本身內的某些東西的值。獲取屬性名稱,而不是與BS4的值

具體地,假設以下幾點:

<div class="item" data-color="red" data-itemid="abc">Red Slippers</div> 

我內部數據的itemid> ABC值之後。

我似乎無法得到一些東西,看不到div內的值:即紅色拖鞋,這不是我所追求的。

我曾嘗試以下,沒有運氣:

item_id = soup.find('data-itemid')

任何想法?

回答

4

您可以使用帶謂詞的find_all來縮小搜索範圍,然後使用字典索引來訪問該特定屬性。

from bs4 import BeautifulSoup 

soup = BeautifulSoup(text, 'html5lib') 

items = soup.find_all('div', {'class' : 'item'}) 
for item in items: 
    print(item['data-itemid']) 

如果您想進一步縮小搜索範圍,你可以添加更多的謂詞到你的字典,像這樣:

{'class' : 'item', 'data-color' : 'red', ...} # and so on 
+0

@NickP:'html5lib'可能未安裝。您可能需要下載它。 – Rahul

相關問題