Python 从刮取的HTML数据写入CSV

Python 从刮取的HTML数据写入CSV,python,python-2.7,csv,beautifulsoup,Python,Python 2.7,Csv,Beautifulsoup,我能够使用以下代码从俄罗斯统计网站提取数据,并创建一个CSV文件。然而,我有两个问题,首先,我不知道为什么总是在两个非空行之间插入一个空行。其次,我不知道如何编写一个漂亮的表,其中来自同一个月的数据分布在不同的列中。现在,一切都在一个牢房里。谢谢 from bs4 import BeautifulSoup import lxml import urllib2 import csv f=csv.writer(open("Russia.csv","w")) mainurl='http://www.

我能够使用以下代码从俄罗斯统计网站提取数据,并创建一个CSV文件。然而,我有两个问题,首先,我不知道为什么总是在两个非空行之间插入一个空行。其次,我不知道如何编写一个漂亮的表,其中来自同一个月的数据分布在不同的列中。现在,一切都在一个牢房里。谢谢

from bs4 import BeautifulSoup
import lxml
import urllib2
import csv

f=csv.writer(open("Russia.csv","w"))
mainurl='http://www.gks.ru/bgd/free/B00_25/IssWWW.exe/Stg/d000/I000750R.HTM'
urlroot='http://www.gks.ru/bgd/free/B00_25/IssWWW.exe/Stg/d000/'

data = urllib2.urlopen(mainurl).read()
page = BeautifulSoup(data,'html.parser')

for link in page.findAll('a'):
    page = urllib2.urlopen(urlroot+link.get('href'))
    soup = BeautifulSoup(page, 'lxml')
    years=soup.findAll('title',text=True)

    table = soup.find('center').find('table')
    for row in table.find_all('tr')[3:]:
        cells = [cell.get_text(strip=True) for cell in row.find_all('td')]
        f.writerow([cells])

您无意中在此处列出了列表:

相反,直接编写
单元格
列表:

f.writerow(cells)

您想要的输出是什么?@alecxe;我想要的输出如下[csv中第1行的示例]:一月;112,8; 28,2; 1,2[然后是下一行的下一个项目,依此类推我列表中的所有项目],因此csv将列出我列表中每一行的每个项目的数据。现在,我的问题是csv编写器会在每个项目之前逐字写入unicode“u”。
f.writerow(cells)