使用python和beautiful soup将刮取的数据输出到csv文件的问题

2024-10-05 14:29:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将网站上废弃的数据输出到csv文件中,首先我遇到UnicodeEncoding错误,但在使用以下代码后:

if __name__ == "__main__":
reload(sys)
sys.setdefaultencoding("utf-8")

我可以生成csv,下面是相同的代码:

^{pr2}$

但是我在输出csv中只得到一个设备名,我没有任何编程背景,请原谅我的无知。 你能帮我找出这个问题吗?在


Tags: 文件csv数据代码nameif网站main
1条回答
网友
1楼 · 发布于 2024-10-05 14:29:43

这是意料之中的;每次找到元素时,都从头开始编写文件。在循环链接之前,只打开文件一次,然后为找到的每个锚点写入行:

with open('Smartphones.csv', 'wb') as csvfile:
    spamwriter = csv.writer(csvfile, delimiter=',')        
    for anchor in soup.findAll('a', {"class": "clickStreamSingleItem"}):
        print anchor['title']        
        spamwriter.writerow([anchor['title'].encode('utf8')])   

使用w打开一个要写入的文件,首先会清除该文件,然后对每个定位点执行该操作。在

至于您的unicode错误,请不惜一切代价避免更改默认编码。相反,对行进行适当的编码;在上面的示例中,您可以删除整个.setdefaultencoding()调用(以及它前面的reload())。在

相关问题 更多 >