菜鸟笔记
提升您的技术认知

html之etree和xpath笔记-ag真人游戏

阅读 : 60
  • xpath 是一门在 xml 文档中查找信息的语言。xpath 用于在 xml 文档中通过元素和属性进行导航
  • 实例
路径表达式 结果
bookstore 选取 bookstore 元素的所有子节点。
/bookstore 选取根元素 bookstore。
注释:假如路径起始于正斜杠( / ),则此路径始终代表到某元素的绝对路径!
bookstore/book 选取属于 bookstore 的子元素的所有 book 元素。
//book 选取所有 book 子元素,而不管它们在文档中的位置。
bookstore//book 选择属于 bookstore 元素的后代的所有 book 元素,而不管它们位于 bookstore 之下的什么位置。
//@lang 选取名为 lang 的所有属性。
  • 示例1:爬取网页获得etree对象,使用text属性获取标签文本
import requests
from lxml import etree
import re
def shanbei(page):  
    url = 'https://www.shanbay.com/wordlist/104899/202159/?page={0}'.format(page)  
    rsp = requests.get(url)
    tags = etree.html(rsp.content)
    trlist = tags.xpath('//table[@class="table table-bordered table-striped"]/tbody/tr')
    words=dict()
    for tr in trlist:
        word = tr.xpath('.//strong')
        value = tr.xpath('.//td[@class="span10"]')
        words[word[0].text]= value[0].text.strip()
    print(words)
  • 示例2:从文本获取etree对象,并使用text()获取标签文本
from lxml import etree
with open('index.html','r') as f:
    html = f.read()
root = etree.html(html)
for item in root.xpath('//button'):
    print(item.tag)
    print(item.xpath('./text()'))  #返回值为列表,按行(br标签)分割元素
网站地图