【发布时间】:2021-10-12 12:08:27
【问题描述】:
我想抓取一大段 HTML 代码并将其加载到本地新创建的 HTML 文件中。
首先我必须在 HTML 代码中找到正确的容器。我目前在 python 中使用 BeautifulSoup 模块来查找父容器(div):
url = 'https://darksky.net/details/52.3673,4.8998/2021-8-8/ca24/en'
response = requests.get(url)
soup = BeautifulSoup(response.text, "html.parser")
raw_weather_forecast = soup.find('div',class_= "timeline_container")
print(raw_weather_forecast)
然而,这只会返回容器的 HTML 代码加上子容器,而不是这些子容器的 HTML 内容(我也想抓取):
<div class="timeline_container" id="timeline">
<div class="timeline">
<div class="stripes"></div>
<div class="hour_ticks"></div>
<div class="hours"></div>
<div class="temps"></div>
</div>
</div>
我想收集的部分 HTML 代码示例(只有一个可以更好地了解问题)(它是一张图片,因为它是相当多的代码):HTML code
我将如何解决这个问题?在python中有没有一种有效的方法来做到这一点?
提前致谢!
卢克
PS。 为了让您更好地了解我为什么要实现这一目标。当我醒来时,我希望我的电视显示我所在地区的天气预报。我正在使用带有 HDMI cec 的树莓派在该起床时激活我的电视。然后,我希望它加载并显示某些内容(例如我的议程和那天的天气预报),这将在一天开始时对我有所帮助。
【问题讨论】:
-
你可以添加你正在抓取的网址吗?提供更好的答案很容易
-
此外,您提供的输出是正确的。因为我猜soup.find 不返回一个数组,而是soup.find_all 返回一个。
-
我添加了网址@oxsapphir3。你是对的,我的下一段代码改变了输出,它创建了新的 html 文件。我更正了。
-
很好。我已经发布了答案。我想它会帮助你
标签: python html beautifulsoup containers weather