爬网:输出与原始数据不同

我正在尝试对一个显示倒数计时器的网站进行网络抓取(目的是最终使一个不和谐的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小时的时差需要考虑.

上一篇:网络安全:保护总统的特勤局值得我们学习


下一篇:Python中的URL Tree Walker?