【发布时间】:2016-09-02 18:01:04
【问题描述】:
import requests
from bs4 import BeautifulSoup
url = "http://bet.hkjc.com/football/index.aspx?lang=en"
r = requests.get(url)
soup = BeautifulSoup(r.content, "html.parser")
div = soup.find("div", {"class": "footballmaincontent"})
tables = div.find_all("table")
my_table = tables[2]
for row in my_table.find_all('tr'):
cols = row.find_all('td')
odds_list = []
if len(cols) >= 10:
match_no = (cols[0].text.strip())
teams = (cols[2].text.strip())
match_time = (cols[4].text.strip())
home_odds = (cols[7].text.strip())
away_odds = (cols[8].text.strip())
draw_odds = (cols[9].text.strip())
odds_row = (match_no,teams,match_time,home_odds,away_odds,draw_odds)
odds_list.append(odds_row)
# Write to csv file
import csv
with open("odds_file.csv", "wb") as file:
writer = csv.writer(file)
for row in odds_list:
writer.writerow(row)
我尝试通过将列附加到 for 循环内的“odds_list”来将列导出到 csv 文件。但结果它没有在“odds_file”中写入任何内容。
我知道有问题
odds_row = (match_no,teams,match_time,home_odds,away_odds,draw_odds)
但是如何将我制作的列表附加到 csv 文件中?
【问题讨论】:
-
通过使用 children[2],您正在选择 DOM 中的第三个表。这就是你想要的,DOM 中第三张表中的数据吗?
标签: python-2.7 web-scraping beautifulsoup