gpt4 book ai didi

python - 使用 Beautiful Soup 提取嵌套在多个标签内的文本 — Python

转载 作者:太空宇宙 更新时间:2023-11-03 17:48:45 25 4
gpt4 key购买 nike

我想从下面的 html 中使用 Beautiful Soup 提取文本“12:25 AM - 30 Mar 2015”。这是html经过BS处理后的样子:

<span class="u-floatLeft"> · </span>
<span class="u-floatLeft">
<a class="ProfileTweet-timestamp js-permalink js-nav js-tooltip" href="/TBantl/status/582333634931126272" title="5:08 PM - 29 Mar 2015">
<span class="js-short-timestamp " data-aria-label-part="last" data-long-form="true" data-time="1427674132">
Mar 29
</span>

我有这段代码,但它不起作用:

date = soup.find("a",attrs={"class":"ProfileTweet-timestamp js-permalink js-nav js-tooltip"})["title"]

最佳答案

这对我有用:

from bs4 import BeautifulSoup

html = """<span class="u-floatLeft">&nbsp;·&nbsp;</span>
<span class="u-floatLeft">
<a class="ProfileTweet-timestamp js-permalink js-nav js-tooltip" href="/indoz1/status/582443448927543296" title="12:25 AM - 30 Mar 2015">
<span class="js-short-timestamp " data-aria-label-part="last" data-time="1427700314" data-long-form="true">
"""
soup = BeautifulSoup(html)
date = soup.find("a", attrs={"class": "ProfileTweet-timestamp js-permalink js-nav js-tooltip"})["title"]

>>> print(date)
'12:25 AM - 30 Mar 2015'

如果没有更多信息,我怀疑您没有将 HTML 片段转换为 BeautifulSoup 对象。在这种情况下,您会得到 TypeError: find() takes no keyword arguments .

或者,如 alexce points out在上面的注释中,您正在查找的项目实际上可能并不存在于您正在解析的 HTML 中。在这种情况下,date将是空的。

<小时/>

最后,与您遇到的上述问题完全无关 - 如果您要解析 date进入datetime对象,有一个更简单的方法来做到这一点。只需捕获 "data-time"来自 <span class="js-short-timestamp " ... > 的字段并使用 datetime.datetime.fromtimestamp 解析它:

from datetime import datetime as dt

# get "data-time" field value as string named timestamp
data_time = dt.fromtimestamp(int(timestamp))

>>> print(data_time)
datetime.datetime(2015, 3, 30, 3, 25, 14)

关于python - 使用 Beautiful Soup 提取嵌套在多个标签内的文本 — Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29375419/

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