我最近尝试刮过一个http://quotes.toscrape.com/引号(仅在第一页上)并将其保存到一个csv文件中。我得到了一个很奇怪的结果。仅逗号用作分隔符。请参见下面的屏幕截图和代码:from bs4 import BeautifulSoupfrom urllib.request import urlopenimport csvcsvfile = 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: breakparse()csvfile.close()
1 回答

jeck猫
TA贡献1909条经验 获得超7个赞
您试图将写入行与元组一起使用,但是(奇怪的怪癖)实际上并没有使用元组。
看我的例子:
some_num = (1)
some_tuple = (1,)
更改此行:
writer.writerow((text))
至
writer.writerow((text,))
注意逗号:)
但是为什么会这样呢?
而不是像通过单个字符的元组那样对字符串进行迭代来破坏它,例如
>>> for character in "this string":
... print(character)
t
h
i
s
s
t
r
i
n
g
添加回答
举报
0/150
提交
取消