我正在尝试对一个显示倒数计时器的网站进行网络抓取(目的是最终使一个不和谐的bot在请求时显示计时器剩余的剩余时间).但是,在打印数据时,输出与原始源不同.
环顾四周,我找不到解决问题的方法.我敢肯定我错过了一些东西,但是对于它到底是什么一无所知(我只是作为一个个人项目来做,很少有使用python的经验)
import requests
from bs4 import BeautifulSoup
result = requests.get("https://www.wowclassiccountdown.com/")
result.status_code
result.headers
c = result.content
soup = BeautifulSoup(c)
samples = soup.find_all("div", "fusion-digit")
samples[0]
data = {}
for div in samples:
title = div.string.strip()
data[title] = div.attrs['class']
# displays data
print(data)
我不能告诉您预期的输出是什么,因为它一直在变化,但是显然它不应该全部为0.有人可以向我解释吗?
解决方法:
您可以自己计算.倒计时的目标结束日期时间在请求的响应中.您可以获取当前日期时间并进行更改.我没有将小时,分钟添加到以下内容,但是从几秒钟开始就很容易
import requests
from bs4 import BeautifulSoup as bs
import datetime
from dateutil.relativedelta import relativedelta
r = requests.get('https://www.wowclassiccountdown.com/')
soup = bs(r.content, 'lxml')
end = soup.select_one('#fusion-countdown-1')['data-timer']
ends = datetime.datetime.strptime(end, '%Y-%m-%d-%H-%M-%S')
start = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')
starts = datetime.datetime.strptime(start, '%Y-%m-%d-%H-%M-%S')
diff = ends - starts
diff
对我来说,还有9小时的时差需要考虑.