解析原理: html标签是以树状形式展示

  • 实例化一个etree对象
  • 调用etree对象的xpath方法,结合不同xpath表达式进行标签定位和数据提取

示例化etree对象

  • etree.parse(‘fileName’):加载本地html
  • etree.HTML(page_text):加载网站获取的页面数据

标签定位

from lxml import etree

tree = etree.parse(‘test.html’)

tree.xpath(‘/html/head/meta’)

最左侧的/ :

代表表达式从根标签开始定位

tree.xpath(‘/html//meta’) # 找到html下所有meta

非最左侧的//:

表示多个层级

tree.xpath(‘//meta’)  # 找到所有meta

最左侧的//:

表示可以从任意位置开始标签定位

属性定位

tagName[@attrName = ‘value’]

tree.xpath(‘//div[@class=”video”]/p’)  # 找到class为video下所有的p

索引定位

tag[index] #索引是从1开始的

tree.xpath(‘//div[@class=”video”]/p'[2])  # 找到class为video下所有的p

模糊匹配

//div[contains(@class,’de’)]  #class带de的

//div[starts-with(@class,’vi’)] # calss以vi开头

取文本

/text():直系文本内容

//text():所有文本内容

tree.xpath(‘//div[@class=”video”]/p[1]/text()’)  # 找到class为video下所有的第1p的文字

取属性

/@attrName

tree.xpath(‘a[@id=”v1″]/@href’

 

 

您的电子邮箱地址不会被公开。 必填项已用*标注