我已经设法提取了我正在抓取的网站的大部分各种属性,但是试图在div声明器本身中提取某些内容的值。
具体来说,假设如下:
<div class="item" data-color="red" data-itemid="abc">Red Slippers</div>
我在data-itemid&gt;中的值之后ABC
我似乎无法得到一些没有看到div内部值的东西:即Red Slippers,这不是我追求的。
我试过以下,没有运气:
item_id = soup.find('data-itemid')
有什么想法吗?
答案 0 :(得分:4)
您可以将find_all
与谓词一起使用来缩小搜索范围,然后使用类似dict的索引访问该特定属性。
from bs4 import BeautifulSoup
soup = BeautifulSoup(text, 'html5lib')
items = soup.find_all('div', {'class' : 'item'})
for item in items:
print(item['data-itemid'])
如果您希望进一步缩小搜索范围,可以在dict中添加更多谓词,如下所示:
{'class' : 'item', 'data-color' : 'red', ...} # and so on