在python中将信息写入csv
我正在尝试将信息写入csv,这样每个信息都有自己的单元格。我玩的代码越多,要么出现缩进错误,要么第一行打印到csv,就是这样在python中将信息写入csv,python,csv,web-scraping,Python,Csv,Web Scraping,我正在尝试将信息写入csv,这样每个信息都有自己的单元格。我玩的代码越多,要么出现缩进错误,要么第一行打印到csv,就是这样 缩进错误:预期缩进块 我认为首先要考虑的是打开文件并在循环外创建CSV写入器。我认为您在每次通过for循环时都会覆盖CSV文件('w')。所以试试这个: import requests from bs4 import BeautifulSoup import csv from urlparse import urljoin import urllib2 base_url
缩进错误:预期缩进块
我认为首先要考虑的是打开文件并在循环外创建CSV写入器。我认为您在每次通过for
循环时都会覆盖CSV文件('w'
)。所以试试这个:
import requests
from bs4 import BeautifulSoup
import csv
from urlparse import urljoin
import urllib2
base_url = 'http://www.baseball-reference.com/' # base url for concatenation
data = requests.get("http://www.baseball-reference.com/teams/BAL/2014-schedule-scores.shtml") #website for scraping
soup = BeautifulSoup(data.content)
b=5
for link in soup.find_all('a'):
if not link.has_attr('href'):
continue
if link.get_text() != 'boxscore':
continue
url = base_url + link['href']
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html)
# Scores
table = soup.find('table', attrs={'id': 'BaltimoreOriolespitching'})
for row in table.findAll('tr'):
list_of_cells = []
for cell in row.findAll('td'):
text = cell.text.replace(' ', '')
list_of_cells.append(text)
for list in list_of_cells:
with open('test1.csv', 'w', newline='') as fp:
a = csv.writer(fp, delimiter=',')
a.writerows(list)
具体来说,您会遇到什么错误?缩进错误:预期为缩进块最有可能出现空白错误。检查所有空格是否等于制表符(不推荐)或每个缩进级别是否正好匹配四个空格(推荐)。如果继续出现缩进错误,请指出行号。
with open('test1.csv', 'w', newline='') as fp:
csvw = csv.writer(fp, delimiter=',')
for link in soup.find_all('a'):
if not link.has_attr('href'):
continue
if link.get_text() != 'boxscore':
continue
url = base_url + link['href']
response = requests.get(url)
html = response.content
soup = BeautifulSoup(html)
# Scores
table = soup.find('table', attrs={'id': 'BaltimoreOriolespitching'})
for row in table.findAll('tr'):
list_of_cells = []
for cell in row.findAll('td'):
text = cell.text.replace(' ', '')
list_of_cells.append(text)
for list in list_of_cells:
csvw.writerows(list)