Python 如何使用BeautifulSoup.select获取元标记值
我想从一个html标记中提取日期。我在用蟒蛇和漂亮的汤Python 如何使用BeautifulSoup.select获取元标记值,python,beautifulsoup,Python,Beautifulsoup,我想从一个html标记中提取日期。我在用蟒蛇和漂亮的汤 <meta name="Email" content="info@info.de"> <meta name="Date" content="2021-04-28T20:35:00+02:00"> <meta name="title" content="Tris is tite"> 但是
<meta name="Email" content="info@info.de">
<meta name="Date" content="2021-04-28T20:35:00+02:00">
<meta name="title" content="Tris is tite">
但是,是否可以只使用一个css选择器,只使用标记值?
比如,像这样的事情
tag = "meta['Date']['content']" # or something like this?
date = soup.select(tag)
print(date)
2021-04-28T20:35:00+02:00
PS
我必须使用汤。选择,汤。查找(…)
和汤。选择一个对我不起作用。
所以只有汤。选择有效 你就快到了。您似乎混淆了属性名称。尝试:
tag = "meta[content]"
date = soup.select_one(tag)
print(date.get('content'))
输出:
2021-04-28T20:35:00+02:00
编辑:
将标记行更改为:
tag = "meta[content][name='Date']"
您可以简单地使用:
>>> from bs4 import BeautifulSoup
>>> content = """<meta name="Date" content="2021-04-28T20:35:00+02:00"> """
>>> soup = BeautifulSoup(content, 'html.parser')
>>> soup.find("meta", {"name": "Date"}).attrs['content']
>>> '2021-04-28T20:35:00+02:00'
我已经更新了我的问题,也许我应该早些时候指出,有很多元标记,我只是想要日期tag@taga请参阅编辑。我必须使用soup.select、soup.find(…)和soup.select。其中一个对我不起作用。因此,只有soup.select有效,我正在用soup.select寻找解决方案我更新了答案。
>>> from bs4 import BeautifulSoup
>>> content = """<meta name="Date" content="2021-04-28T20:35:00+02:00"> """
>>> soup = BeautifulSoup(content, 'html.parser')
>>> soup.find("meta", {"name": "Date"}).attrs['content']
>>> '2021-04-28T20:35:00+02:00'
>>> for item in soup.select("meta"):
... print(item.attrs.get('content'))