【发布时间】:2018-07-13 15:12:58
【问题描述】:
我尝试使用带有以下脚本的 python 将html table 解析为 csv:
from bs4 import BeautifulSoup
import requests
import csv
csvFile = open('log.csv', 'w', newline='')
writer = csv.writer(csvFile)
def parse():
html = requests.get('https://en.wikipedia.org/wiki/Comparison_of_text_editors')
bs = BeautifulSoup(html.text, 'lxml')
table = bs.select_one('table.wikitable')
rows = table.select('tr')
for row in rows:
csvRow = []
for cell in row.findAll(['th', 'td']):
csvRow.append(cell.getText())
writer.writerow(csvRow)
print(csvRow)
parse()
csvFile.close()
此代码输出格式清晰的 CSV 文件,没有编码问题。
在 Enrico Tröger 的 Geany 之前一切都很好。我的脚本无法写入ö
进入一个csv文件,所以我尝试了这个:
csvRow.append(cell.text.encode('ascii', 'replace')) 而不是:csvRow.append(cell.getText())
一切都很好,尽管每个表格单元都嵌套在b'' 中。 那么,我怎样才能得到一个没有编码问题的格式清晰的 csv 文件(如第一个屏幕截图)并替换或忽略所有
使用我的 scipt 的非 unicode 符号(如第二个屏幕截图)?
【问题讨论】:
-
您能否将带有
UnicodeDecodeError的完整错误回溯添加到问题中?