【发布时间】:2018-09-30 14:46:00
【问题描述】:
在下面的代码中,我成功地抓取了每支 MLB 球队的名单以及他们当天(4 月 18 日)的获胜概率。我想将此数据导出到 CSV 文件,但是当我编写代码时,只有一个团队和获胜概率被导出。有谁知道为什么会这样?我认为需要用 CSV 编写器编写另一个 for 循环,但我不确定如何使用两个单独的抓取数据源(团队名称和获胜概率)来做到这一点提前致谢!
import requests
import csv
from bs4 import BeautifulSoup
page=requests.get('https://www.fangraphs.com/livescoreboard.aspx?date=2018-
04-18')
soup=BeautifulSoup(page.text, 'html.parser')
[link.decompose() for link in soup.find_all(class_='lineup')]
f=csv.writer(open('Win_Probability.csv','w'))
f.writerow(['Teams','Win_Prob'])
team_name_list=soup.find(class_='RadAjaxPanel')
team_name_list_items=team_name_list.find_all('a')
for team_name in team_name_list_items:
teams=team_name.contents[0]
print(teams)
winprob_list=soup.find(class_='RadAjaxPanel')
winprob_list_items=winprob_list.find_all('td',attrs={'style':'border:1px
solid black;'})
for winprob in winprob_list_items:
winprobperc=winprob.contents[0]
print(winprobperc)
f.writerow([teams,winprobperc])
【问题讨论】:
标签: python csv beautifulsoup