用lxml / xpath解析html元素

if

使用lxml / python和xpath,我在标签之间检索了值。我也想获取html属性,不仅是文本,我的程序也可以,但是跳过了两行。

Python :

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import lxml.html
htmltree = lxml.html.parse('data.html')
res = htmltree.xpath("//table[@class='mainTable']/tr/td/text()")
print '\n'.join(res).encode("latin-1")

data.html示例

<table class='mainTable'>
         <TR>
                  <TD bgcolor="#cccccc">235</TD>
                  <TD bgcolor="#cccccc"> Windows XP / Office 2003.</TD>
                  <TD bgcolor="#cccccc">
                  G:\REMI\projets\Migration_XP_Office2003\Procedures\Installation Win XP et Office 2003.doc</TD>
                  <TD bgcolor="#cccccc">2005-10-18</TD>
                  <TD bgcolor="#cccccc">2010-12-30</TD></TR>
                  <TD bgcolor="#cccccc">
                  <P class="MsoBodyText" 
                    style="margin: 0cm 0cm 0pt;"><STRONG><FONT face="Times New Roman" size="5">blablablablablablbala<BR><BR></FONT></STRONG></FONT></P>
                  </TD>
                <TR>
                  <TD bgcolor="#cccccc">23</TD>
                  <TD bgcolor="#cccccc">XEROX/ MAC</TD>
                  <TD bgcolor="#cccccc">
                    <P>joint.</P>
                    <P>&nbsp;</P></TD>
                  <TD bgcolor="#cccccc">G:\DDTH_INF\REMI\bdcfiles\I098_Page_de_garde_MAC.doc</TD>
                  <TD bgcolor="#cccccc">2012-12-19</TD>
                  <TD bgcolor="#cccccc">2012-12-19</TD>
         </TR>
 </table>

返回 :

 235 Windows XP / Office 2003.
 G:\REMI\projets\Migration_XP_Office2003\Procedures\Installation Win XP
 et Office 2003.doc 2005-10-18 2010-12-30

 23 XEROX/ MAC G:\DDTH_INF\REMI\bdcfiles\I098_Page_de_garde_MAC.doc
 2012-12-19 2012-12-19

我不明白为什么程序会被跳过

<P class="MsoBodyText" 
                        style="margin: 0cm 0cm 0pt;"><STRONG><FONT face="Times New Roman" size="5">blablablablablablbala<BR><BR></FONT></STRONG></FONT></P>

 <P>joint.</P>
                        <P>&nbsp;</P>

因为在<p>标签之间我只想获取每个TD之间的所有数据。我也尝试过/ tr / td / p /,但这不是解决方案。

注意:此代码是示例,可能html损坏了,但是我的文件结构良好。

ec

这是因为您将text()摆脱每个td元素的困扰(这基本上意味着),给我一个直接位于td元素内部的文本节点

相反,请调用.text_content()每个td找到的:

texts = [td.text_content() for td in htmltree.xpath("//table[@class='mainTable']/tr/td")]

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

通过xpath用lxml解析html的问题

来自分类Dev

用python解析lxml:如何使用objectify

来自分类Dev

用python解析lxml:如何使用objectify

来自分类Dev

用lxml,python,.tail解析的HTML被<br>标签分解

来自分类Dev

用lxml,python,.tail解析的HTML被<br>标签分解

来自分类Dev

用lxml编码的大写html标签

来自分类Dev

Python lxml.html xpath不返回任何元素

来自分类Dev

Python lxml.html xpath不返回任何元素

来自分类Dev

使用 lxml 和 xpath 解析

来自分类Dev

可以用 Beautiful Soup 的 html5lib 解析器替换 Scrapy 的默认 lxml 解析器吗?

来自分类Dev

python-使用带有xpath语法的lxml.html解析html表单

来自分类Dev

用Xpath解析

来自分类Dev

用python解析xpath

来自分类Dev

用Xpath解析

来自分类Dev

python lxml xpath无法解析撇号

来自分类Dev

python使用lxml和xpath解析html表上的特定数据

来自分类Dev

解析本地HTML python(lxml)

来自分类Dev

通过LXML通过XPATH查找元素-Python

来自分类Dev

使用lxml和Xpath刮取元素

来自分类Dev

LXML用unicode编写?

来自分类Dev

LXML用unicode编写?

来自分类Dev

用xpath查找textarea元素

来自分类Dev

lxml无法正确解析HTML的unicode

来自分类Dev

使用lxml解析命名节奏的HTML?

来自分类Dev

python使用lxml解析html表

来自分类Dev

如何使用LXML解析损坏的HTML

来自分类Dev

使用lxml解析html部分模板

来自分类Dev

使用LXML解析器的HTML getnext

来自分类Dev

在python中使用lxml解析html页面