因为之前我们还抓取了球员本赛季的比赛详情,所以我们可以进一步的抓取所有球员每一场比赛的记录

抓取的代码如下
01 | def get_player_match(url): |
02 | html = urlopen(url).read() |
03 | soup = bs4.BeautifulSoup(html, "lxml") |
04 | matches = [ dd for dd in soup.select('.shtdm tr') if dd.contents[1].name != 'th'] |
06 | for item in [ dd for dd in matches if len(dd.contents) > 11]: |
08 | for match in [ dd for dd in item.contents if type(dd) is bs4.element.Tag]: |
10 | record.append(match.string) |
12 | for d in [ dd for dd in match.contents if type(dd) is bs4.element.Tag]: |
13 | query = dict([(k,v[0]) for k,v in urlparse.parse_qs(d['href']).items()]) |
14 | record.append('teamid' in query and query['teamid'] or query['id']) |
15 | record.append(d.string and d.string or 'na') |
16 | records.append(record) |
19 | def get_players_match(playerlist, baseurl = BASE_URL + '/player.aspx?'): |
21 | for item in playerlist: |
22 | url = baseurl + item[10] |
24 | result = result + get_player_match(url) |
26 | match_fields = ['date_cn','homeid','homename_cn','matchid','score','awayid','awayname_cn','league_cn','firstteam','playtime','goal','assist','shoot','run','corner','offside','foul','violation','yellowcard','redcard','save'] |
27 | write_csv('m.csv',get_players_match(result),match_fields) |
抓取的过程和之前类似。
下一步做什么
现在我们拥有了详细的欧洲联赛的数据,那么下一步要怎么做呢,我推荐大家把数据导入BI工具来做进一步的分析。有两个比较好的选择:
Tableau在数据可视化领域可谓无出其右,Tableau Public完全免费,用数据可视化来驱动数据的探索和分析,拥有非常好的用户体验 Splunk提供一个大数据的平台,主要面向机器数据。支持每天免费导入500M的数据,如果是个人学习,应该足够了。
当然你也可以用Excel。 另外大家如果有什么好的免费的数据分析的平台,欢迎交流。 |