猿问

使用python的奇怪的csv输出

我最近尝试刮过一个http://quotes.toscrape.com/引号(仅在第一页上)并将其保存到一个csv文件中。我得到了一个很奇怪的结果。仅逗号用作分隔符。请参见下面的屏幕截图和代码:


from bs4 import BeautifulSoup

from urllib.request import urlopen

import csv


csvfile = open('quotes.csv', 'w')

writer = csv.writer(csvfile)

writer.writerow(('text'))



def parse():

    html = urlopen('http://quotes.toscrape.com/page/1/')

    bs = BeautifulSoup(html, 'lxml')

    quotes = bs.findAll('div', class_='quote')

    for quote in quotes:

        try:

            text = quote.find('span', class_='text').getText(

            ).replace(',', '|').replace('"', '')

            print(text)

            writer.writerow((text))

        except UnicodeEncodeError:

            break


parse()

csvfile.close()

斯蒂芬大帝
浏览 170回答 1
1回答

jeck猫

您试图将写入行与元组一起使用,但是(奇怪的怪癖)实际上并没有使用元组。看我的例子:some_num = (1)some_tuple = (1,)更改此行:        writer.writerow((text))至        writer.writerow((text,))注意逗号:)但是为什么会这样呢?而不是像通过单个字符的元组那样对字符串进行迭代来破坏它,例如>>> for character in "this string":...     print(character)thisstring
随时随地看视频慕课网APP

相关分类

Python
我要回答