gpt4 book ai didi

python - 使用 xpath 和 domdocuments 进行抓取

转载 作者:行者123 更新时间:2023-12-01 05:06:17 25 4
gpt4 key购买 nike

我正在学习如何从网站上抓取数据,但我陷入了困境。由于隐私问题,我无法在此处发布链接,但我会尽力解释。

酒店 1 的评分:

<div class = "right">
<div data-res-id = "305281" class = "tooltip rating-for-305281 rating-div left res-snippet-small-rating level-6">
3.5
</div>

酒店 2 的评分:

<div class = "right">
<div data-res-id = "8913" class = "tooltip rating-for-8913 rating-div left res-snippet-small-rating level-7">
3.9
</div>

酒店 3 的评分:

<div class = "right">
<div data-res-id = "4959" class = "tooltip rating-for-4959 rating-div left res-snippet-small-rating level-8">
4.2
</div>

像这样,有 100 家酒店,每个酒店都有不同的等级,所以我无法使用 xpath 或者我对此不太了解。

我想抓取餐厅的所有评级,即“3.5”、“3.9”、“4.2”,但问题是每个评级都有不同的类别和不同的 ID。

请问我只是一个初学者,我想学习一些东西,所以有人可以告诉我如何获取酒店的这些评级吗?如果你能给我一个例子那就太好了..`

最佳答案

你应该使用HTML解析器,有多种选择,但是BeautifulSoup是最容易使用和理解的一种。以下是获取具有 rating-div 类的 div 元素文本的示例:

from bs4 import BeautifulSoup

data = """
<div>
<div class = "right">
<div data-res-id = "305281" class = "tooltip rating-for-305281 rating-div left res-snippet-small-rating level-6">
3.5
</div>
</div>
<div class = "right">
<div data-res-id = "8913" class = "tooltip rating-for-8913 rating-div left res-snippet-small-rating level-7">
3.9
</div>
</div>
<div class = "right">
<div data-res-id = "4959" class = "tooltip rating-for-4959 rating-div left res-snippet-small-rating level-8">
4.2
</div>
</div>
</div>
"""

soup = BeautifulSoup(data)
print [r.get_text(strip=True) for r in soup.find_all('div', attrs={'class': 'rating-div'})]

打印:

[u'3.5', u'3.9', u'4.2']

关于python - 使用 xpath 和 domdocuments 进行抓取,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24961962/

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