使用Python中的逗号刮取数据

时间:2015-12-08 00:23:11

标签: python

我正在使用带有请求和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()

1 个答案:

答案 0 :(得分:0)

您应该使用csv模块来编写文件。您可以选择分隔符(例如|)或使用引号来处理逗号。

如果您还有其他问题,请与我们联系!