我是lxml的新手,对Python也不太熟悉,找不到以下问题的解决方案:
我需要导入几个带有3列和未定义行数(从第3行开始)的表格。
当任何一行的第二列为空时,该行将被丢弃并中止表格的处理。
以下代码可以很好地打印出表格数据(但我无法在以后重用这些数据):
from lxml.html import parse
def process_row(row):
for cell in row.xpath('./td'):
print cell.text_content()
yield cell.text_content()
def process_table(table):
return [process_row(row) for row in table.xpath('./tr')]
doc = parse(url).getroot()
tbl = doc.xpath("/html//table[2]")[0]
data = process_table(tbl)
这只打印了第一列 :(
for i in data:
print i.next()
以下仅导入第三行,而不是后续行。
tbl = doc.xpath("//body/table[2]//tr[position()>2]")[0]
有没有一种高端的解决方案,可以将第3行的所有数据获取到tbl中,并将其复制到一个数组中,以便在不需要lxml依赖的模块中进行处理?
非常感谢您的帮助,Alex