【发布时间】:2025-12-12 23:35:01
【问题描述】:
我是 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 的模块?
提前感谢您的帮助,亚历克斯
【问题讨论】:
-
您能粘贴源文档(或部分)和预期结果吗?我不是python方面的专家,但我很擅长xpath,我想我可以帮助你。
-
源文档可在此处获得(仅在欧洲中部时间 06:00 到 22:00 之间):tinyurl.com/yj4corh
-
预期结果:[['Premier', '05', 'name1'], [u'Deuxi\xe8me', '13', 'name2']]