我是这里的初学者。最近我一直试图从中国本地网站上搜集一些数据。 我成功地将信息存储为矩阵(列表列表),c,但是当我把它写入csv文件时,我有一些杂乱的东西。这是代码:
from bs4 import BeautifulSoup
import requests
import pandas as pd
import csv
url = "http://wszw.hzs.mofcom.gov.cn/fecp/fem/corp/fem_cert_stat_view_list.jsp"
r=requests.get(url)
data= r.text
soup = BeautifulSoup(data)
table = soup.find_all('table')[3]
rows = table.find_all('tr')
dogData= 0
c=[]
for tr in rows:
cols = tr.find_all('td')
dogName =cols[0].get_text()
rank2013 = cols[1].get_text()
rank2012 =cols[2].get_text()
rank2008 =cols[3].get_text()
rank2003 =cols[4].get_text()
rank2004 =cols[5].get_text()
rank2005=cols[6].get_text()
temp=[dogName,rank2013,rank2012,rank2008,rank2003,rank2004,rank2005]
[x.encode('gb18030') for x in temp]
c.append(temp)
with open("output.csv", "wt") as f:
writer = csv.writer(f)
writer.writerows(c)
我正在使用Python 3.4 任何人都可以告诉我出了什么问题,我怎样才能改进代码?非常感谢! 马可
答案 0 :(得分:0)
我没有运行你的代码,但我注意到了一些奇怪的事情。 你输入了
temp=[dogName,rank2013,rank2012,rank2008,rank2003,rank2004,rank2005]
[x.encode('gb18030') for x in temp]
c.append(temp)
然而[x.encode('gb18030') for x in temp]
没有做任何事情。现在,您编写的代码与:
temp=[dogName,rank2013,rank2012,rank2008,rank2003,rank2004,rank2005]
c.append(temp)
如果你想按照你使用它的方式使用列表理解:
temp=[dogName,rank2013,rank2012,rank2008,rank2003,rank2004,rank2005]
modified_temp = [x.encode('gb18030') for x in temp]
c.append(modified_temp)