Python:在beautifulsoup中如何从这样的标记中获取文本

2024-06-30 15:37:32 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要得到这个链接的日期和时间:“https://www.pagina12.com.ar/225378-murio-cacho-castana-simbolo-del-macho-porteno”或任何网站“https://www.pagina12.com.ar/

结构如下:

<div class="article-info"><div class="breadcrumb"><div class="suplement"><a href="https://www.pagina12.com.ar/suplementos/cultura-y-espectaculos/notas">Cultura y Espectáculos</a></div><div class="topic"></div></div><div class="time"><span datetime="2019-10-15" pubdate="pubdate">15 de octubre de 2019</span><span> · </span><span>Actualizado hace <span class="article-time" data-time="1571156914">3 hs</span></span></div></div>

我做到了:

cosa = requests.get('https://www.pagina12.com.ar/225378-murio-cacho-castana-simbolo-del-macho-porteno').text
parse = BeautifulSoup(cosa, 'html5lib')
info = parse.findAll('div', {'class':'article-info'})

然后我试着得到的文字,说'3小时',不能访问它,不知道怎么做。有人有主意吗

谢谢


Tags: httpsdivinfocomtimewwwarticleclass
1条回答
网友
1楼 · 发布于 2024-06-30 15:37:32

您可以从data-time属性进行计算

from bs4 import BeautifulSoup as bs
import requests, datetime
import dateutil.relativedelta

r = requests.get('https://www.pagina12.com.ar/225378-murio-cacho-castana-simbolo-del-macho-porteno')
soup = bs(r.content, 'lxml')
dt1 = datetime.datetime.fromtimestamp(float(soup.select_one('[data-time]')['data-time']))
dt2 = datetime.datetime.fromtimestamp(datetime.datetime.now().timestamp()) 
diff = dateutil.relativedelta.relativedelta(dt2, dt1)
print(diff.hours)

相关问题 更多 >