Las*_*oth 5 python beautifulsoup
我想从具有唯一类的页面中打印出所有 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>Run Code Online (Sandbox Code Playgroud)
“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)
Run Code Online (Sandbox Code Playgroud)
它返回一个空列表。
我期望的是,我想要的是从 div 中取回带有 ID-s 的列表,这样:12345 12346
提前感谢您的帮助!
HS-nebula 是正确的, find_all 查找某种类型的标签,在你的汤中 id 是一个属性而不是一种标签类型。要获得汤中所有 id 的列表,您可以使用以下一个衬垫
ids = [tag['id'] for tag in soup.select('div[id]')]
Run Code Online (Sandbox Code Playgroud)
这使用 CSS 选择器而不是 bs4 的 find_all,因为我发现 bs4 的文档缺乏关于其内置的文档。
所以它soup.select所做的是返回一个包含所有 div 元素的列表,这些元素具有一个名为“id”的属性,然后我们循环遍历该 div 标签列表并将“id”属性的值添加到 ids 列表中。
| 归档时间: |
|
| 查看次数: |
5721 次 |
| 最近记录: |