我发现了另一个问题,是在抓取网站时获取日期。
但是,当期望输出是日期时,提供的解决方案为我提供了整数表示。
首选格式:2019年9月9日
from bs4 import BeautifulSoup
ec_editorial = requests.get("https://elcomercio.pe/opinion/editorial")
ec_editorial_scr = ec_editorial.content
data = """your html goes here"""
soup = BeautifulSoup(ec_editorial_scr)
for i in soup.findAll('time'):
if i.has_attr('datetime'):
print(i['datetime'])
打印
1560076500
1559990100
1559990100
答案 0 :(得分:1)
假设 1560076500 是Unix时间戳,
import datetime
time_stamp = 1559990100
converted_date = datetime.datetime.fromtimestamp(time_stamp / 1e3)
print(converted_date)
print(str(converted_date)
输出:
datetime.datetime(1970, 1, 19, 6, 49, 50, 100000)
'1970-01-19 06:49:50.100000'
答案 1 :(得分:1)
此处(您可以“播放”格式字符串以获取准确的输出)
wrapper
输出
import time
import requests
from bs4 import BeautifulSoup
ec_editorial = requests.get("https://elcomercio.pe/opinion/editorial")
soup = BeautifulSoup(ec_editorial.content, 'html.parser')
for i in soup.findAll('time'):
if i.has_attr('datetime'):
print(time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(int(i['datetime']))))
答案 2 :(得分:1)
1560076500、1559990100是纪元时间,即自1970年1月1日(UTC / GMT午夜)以来经过的秒数。
将其转换为字符串格式的最简单方法是使用Python time
库。
localtime
。>>> date = 1560076500
>>> import time
>>> date = time.localtime(date)
>>> date
time.struct_time(tm_year=2019, tm_mon=6, tm_mday=9, tm_hour=16, tm_min=5, tm_sec=0, tm_wday=6, tm_yday=160, tm_isdst=0)
strftime()
格式化为字符串。>>> time.strftime('%d %b %Y', date)
'09 Jun 2019'