一般编程新手,所以我可能会以错误的方式解决这个问题。我正在编写一个 lxml 解析器,我想在其中省略解析器输出中没有内容的 HTML 表行。这就是我所拥有的:
for row in doc.cssselect('tr'):
for cell in row.cssselect('td'):
sys.stdout.write(cell.text_content() + '\t')
sys.stdout.write '\n'
Run Code Online (Sandbox Code Playgroud)
的write()东西是暂时的。我想要的是循环只返回行 where tr.text_content != ''。所以我想我在问如何写出我的大脑认为应该是 'for a in b if a != x' 但这不起作用。
谢谢!
for row in doc.cssselect('tr'):
cells = [ cell.text_content() for cell in row.cssselect('td') ]
if any(cells):
sys.stdout.write('\t'.join(cells) + '\n')
Run Code Online (Sandbox Code Playgroud)
仅当至少有一个包含文本内容的单元格时才打印该行。
| 归档时间: |
|
| 查看次数: |
3850 次 |
| 最近记录: |