1.数据来源
我们需要知道的是,LOL比赛数据主要来源于官网。
image.png
每场比赛赛事都有唯一的ID,我们记住这ID且通过的这个ID能得到我们想要的数据信息。点击查看比赛详情即可。
2.开始处理
我们以其中一场比赛数据为例,来对当天场次的这场比赛总共打了多少场比赛。也就是BO几。
image.png
我们可以看到,当天该场次比赛总共打了4场,我们接下来通过代码去验证是否正确。
我们先看程序执行的结果,可以看到与实际的结果相符,总共四场。
[{'race_id': '68482', 'match_id_list': ['74605', '74606', '74607', '74608']}]
def run(self, *args):
match_id_list = []
response = requests.get(self.url % args[0], headers=self.hearders).text
bs = BeautifulSoup(response, "lxml")
_labels = bs.select("body > div > div.content > div.left > div:nth-of-type(1) > div > a")
for game_label in _labels:
if game_label.has_attr("data-matchid"):
match_id_list.append(game_label["data-matchid"])
return [{
"race_id": args[0],
"match_id_list": match_id_list
}]
采用BeautifulSoup.select对html文件读取解析,按标签层次找到所需要的数据。
想要获取更多信息,请参考原文