我尝试使用以下脚本使用python 将html表解析为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()
Run Code Online (Sandbox Code Playgroud)
此代码输出了一个清晰的格式化CSV文件,没有编码问题.
在EnricoTröger的Geany之前一切都很好.我的脚本无法写入ö
csv文件,所以我尝试了这个:
csvRow.append(cell.text.encode('ascii', 'replace'))而不是:csvRow.append(cell.getText())
尽管事实上每个表格单元都嵌套了,但一切都很好b''.
那么,如何使用我的scipt获得清晰的格式化csv文件(如第一个屏幕截图中)并更换或忽略所有非unicode符号(如第二个屏幕截图中)?