我是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)
Run Code Online (Sandbox Code Playgroud)
这只打印第一列:(
for i in data:
print i.next()
Run Code Online (Sandbox Code Playgroud)
以下仅导入第三行,而不是后续行
tbl = doc.xpath("//body/table[2]//tr[position()>2]")[0]
Run Code Online (Sandbox Code Playgroud)
任何人都知道一个奇特的解决方案,将第3行的所有数据都转换为tbl并将其复制到一个数组中,以便将其处理成一个没有lxml依赖的模块?
先谢谢你的帮助,Alex