Python lxml解析HTML并用xpath获取元素的方法

yipeiwu_com6年前Python基础

代码

使用方法见注释

#-*- coding: UTF-8 -*-

from lxml import etree

source = u'''
<div><p class="p1" data-a="1">测试数据1</p>
<p class="p1" data-a="2">测试数据2</p>
<p class="p1" data-a="3" style="height:100px;">
<strong class="s">测试数据3</strong></p>
<p class="p1" data-a="4" width="200"><img src="1.jpg" class="img"/><br/>
图片</p>
'''

# 从字符串解析
page = etree.HTML(source)

# 元素列表
ps = page.xpath("//p")
for p in ps:
  print u"属性:%s" % p.attrib
  print u"文本:%s" % p.text

# 文本列表
ts = page.xpath("//p/text()")
for t in ts:
  print t

# xpath定位 
ls = page.xpath('//p[@class="p1"][last()]/img')
for l in ls:
  print l.attrib

以上这篇Python lxml解析HTML并用xpath获取元素的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

PyQt5下拉式复选框QComboCheckBox的实例

PyQt5下拉式复选框QComboCheckBox的实例

笔者在用PyQt5写GUI时碰到了需要使用下拉式复选框的情况,但是PyQt5中没有相应的组件,而网上找到的方法大多是qt使用的,所以不能直接拿来用。 没办法,在这种让人无奈的情况下,笔者...

python 并发编程 非阻塞IO模型原理解析

python 并发编程 非阻塞IO模型原理解析

非阻塞IO(non-blocking IO) Linux下,可以通过设置socket使其变为non-blocking。当对一个non-blocking socket执行读操作时,流程是...

python递归函数绘制分形树的方法

python递归函数绘制分形树的方法

分形几何学的基本思想:客观事物具有自相似性的层次结构,局部和整体在形态,功能,信息,时间,空间等方面具有统计意义上的相似性,称为自相似性,自相似性是指局部是整体成比例缩小的性质。 我们先...

详解Django-restframework 之频率源码分析

详解Django-restframework 之频率源码分析

一 前言 经过权限判断之后就是进行频率的判断了,而频率的判断和权限又不一样,认证、权限和频率的执行流程都差不多,使用配置里面的相关类来进行判断。而不和认证和权限一样,频率的配置没有,查看...

Windows8下安装Python的BeautifulSoup

运行环境:Windows 8.1 Python:2.7.6 在安装的时候,我使用的pip来进行安装,命令如下: 复制代码 代码如下: pip install beautifulsoup4...