我正在使用带有请求和lxml的
Python来搜索表.使用tree.xpath找到表中的数据,并将其添加到写入CSV文件的列表中.不幸的是,其中一个表的列中的行包含逗号,这会改变列表中的值的数量.
例:
from lxml import html import requests page = requests.get('http://url.com/table') tree = html.fromstring(page.content) list1 = tree.xpath('//*[@id=block]/div/tr[*]/td[1]/a/text()') list2 = tree.xpath('//*[@id=block]/div/tr[*]/td[2]/a/text()')
我刮的表:
Column1 | Column2 A,B,C X D,E Y F,G,H Z
电流输出:
print list1 ['A','B','C','D','E','F','G','H'] print list2 ['X','Y','Z']
首选输出:
print list1 ['a b c','d e','f g h'] print list2 ['x','y','z']
我找不到合适的解决方案了.是否有一种简单的方法可以从值中删除逗号或在列表中使用不同的分隔符时保留逗号?谢谢您的帮助!
编辑:这是CSV编写器.
csv_out = open('file.csv','wb') writer = csv.writer(csv_out,dialect = 'excel-tab') writer.writerows(list,list2,etc) csv_out.close()
解决方法
您应该使用csv模块来编写文件.您可以选择分隔符(例如|)或使用引号来处理逗号.
如果您还有其他问题,请与我们联系!