我将从头开始,因为我觉得我迷失了所有不同的可能性。我将讨论的是排行榜,但也适用于价格跟踪。
我的目标是从网站(所有时间排行榜/隐藏)中抓取数据,将其放入 .csv 文件中并每天中午更新。
到目前为止我所取得的成功:抓取数据。
尝试使用 BS4进行抓取,但由于数据是隐藏的,我无法具体到只能获取所有时间点。我发现这是成功的,因为我能够获得一个包含我需要的所有数据和日期作为标题的表格。我对这个解决方案的问题是 1) 填充 csv 的无用数据 2) 表是垂直的而不是水平的
使用 CSS 选择器抓取数据,但我放弃了这个想法,因为有时页面无法加载并且数据没有被抓取。马上发现有一个json文件包含数据
Json 抓取似乎是最好的选择,但在创建可以用来制作图表的 csv 文件时遇到困难。
这就是让我陷入困境的原因:将数据存储在一个看起来像这样的表中,其中灰色区域是点,DATE1 是数据被抓取的时刻:
我不想过多地操作 csv 文件中的数据。如果表格看起来像我上面的图片,那么之后制作图表会更容易,但我遇到了麻烦。我做得最好的就是创建一个看起来像这样的表格,并且是垂直的而不是水平的。
name,points,date
Dennis,52570,10-23-2020
Dinh,40930,10-23-2020
name,points,date
Dennis,52570,10-23-2020
Dinh,40930,10-23-2020
name,points,date
Dennis,52570,10-23-2020
Dinh,40930,10-23-2020
感谢您的帮助。
这是代码
import pandas as pd
import time
timestr = time.strftime("%Y-%m-%d %H:%M")
url_all_time = 'https://community.koodomobile.com/widget/pointsLeaderboard?period=allTime&maxResults=20&excludeRoles='
data = pd.read_json(url_all_time)
table = pd.DataFrame.from_records(data, index=['name'], columns=['points','name'])
table['date'] = pd.Timestamp.today().strftime('%m-%d-%Y')
table.to_csv('products.csv', index=True, encoding='utf-8')
如果我想要的不可能,我可能只是为每个成员单独抓取,为每个成员制作一个 CSV 文件,并制作一个引用这些不同文件的图表。
一只萌萌小番薯
DIEA
相关分类