gpt4 book ai didi

python - 如何在 python 中从带有漂亮汤的 div 中找到_all(id)

转载 作者:行者123 更新时间:2023-11-28 21:32:16 25 4
gpt4 key购买 nike

我想打印出具有唯一类的页面中的所有 ID。

我想用Beautiful Soup抓取的页面是这样的:

<div itemscope itemprop="item" itemtype="http://schema.org/Product" id="12345" class="realestate"> 
<div class="contentArea">
<meta itemprop="name" content="Name - 12345 " />
<meta itemprop="url" content="https://url12345.hu" />
<meta itemprop="category" content="category1" />
</div>
</div>
<div itemscope itemprop="item" itemtype="http://schema.org/Product" id="12346" class="realestate">
<div class="contentArea">
<meta itemprop="name" content="Name - 12346 " />
<meta itemprop="url" content="https://url12346.hu" />
<meta itemprop="category" content="category1" />
</div>
</div>

“ID”是 Itemscope DIV 中的唯一标识符,所以我想以某种方式提取这些唯一 ID 并将它们全部打印出来(原因是将所有其他广告信息附加到此 ID(如名称、URL、等等)稍后)

我尝试使用此 python 代码,但它不起作用。

import requests
from bs4 import BeautifulSoup

page = requests.get('searchResultPage.url')
soup = BeautifulSoup(page.text, 'html.parser')
id = soup.find_all('id')
print(id)

它返回一个空列表。

我所期望的,我想要的是从 div 中取回一个带有 ID-s 的列表,这样:1234512346

提前感谢您的帮助!

最佳答案

HS-nebula 是正确的,find_all 寻找某种类型的标签,在你的 soup id 中是一个属性而不是一种标签类型。要获取汤中所有 ID 的列表,您可以使用以下一个衬垫

ids = [tag['id'] for tag in soup.select('div[id]')]

这使用 CSS 选择器而不是 bs4 的 find_all,因为我发现 bs4 的文档缺乏关于它的内置函数。

soup.select 所做的是返回所有 div 元素的列表,这些元素具有名为“id”的属性,然后我们遍历该 div 标签列表并添加“id”的值' 属性到 ids 列表。

关于python - 如何在 python 中从带有漂亮汤的 div 中找到_all(id),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56860183/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com