我希望从网站中提取数据并将其以干净的格式保存到csv。目前我的代码没有运行并返回错误:" AttributeError:' int'对象没有属性' writerow'"
from bs4 import BeautifulSoup
import urllib.request
import csv
url="http://www.covers.com/pageLoader/pageLoader.aspx?page=/data/nfl/injury/injuries.html"
arr=[[],[],[],[],[]]
with urllib.request.urlopen(url) as url:
s = url.read()
soup = BeautifulSoup(s)
tables = soup.find_all("table", class_="data")
for table in tables:
teams=table.find_all("td", class_="datahead")
teamName=teams[0].text
rrows=table.find_all("tr")
for rrow in rrows:
ccols=rrow.find_all("td")
if len(ccols)>3:
name=ccols[0].text
pos=ccols[1].text
status=ccols[2].text
desc=ccols[3].text
arr[0].append(teamName)
arr[1].append(name)
arr[2].append(pos)
arr[3].append(status)
arr[4].append(desc)
with open('injuries.csv', 'w', newline='') as datafile:
a=csv.writer(datafile, delimiter=',')
for a in range(1000):
a.writerow([arr[0][a],arr[1][a],arr[2][a],arr[3][a],arr[4][a]])
datafile.close
非常感谢有关导致此错误原因的任何解释
答案 0 :(得分:0)
您使用a
作为循环变量和csv.writer
对象的名称。将for a in range(1000)
替换为for i in range(1000)
,将arr[0][a]
替换为arr[0][i]
,依此类推。
答案 1 :(得分:0)
在
a=csv.writer(datafile, delimiter=',')
for a in range(1000):
您正在使用a
作为csv.writer
,然后立即将其用作索引。改变其中一个。