非标准代码处理

from lxml import etree  #导入lxml 中erree模块
parser = etree.HTMLParser(encoding="utf-8") #解释器指定编码

tree = etree.parse("b.html", parser=parser)  #把解释器加到etree解释器
print(tree)  #打印节点
print(etree.tostring(tree, encoding="utf-8").decode("utf-8")) #类型解码:看到具体内容

常用功能
#1.获取子节点全部文本
result = tree.xpath('/html/body/ul/li/a/text()')
# / 从当前节点选取直接子节点
# text()方法获取节点中的文本
print(result)

#2.指定获取子节点某一个文本
result = tree.xpath('/html/body/ul/li[1]/a/text()')
#指定标签中某一个内容:li[1]:某一标签第一个内容(xpath是从一开始数数)
print(result)

#3.指定属性获取 内容
result = tree.xpath('/html/body/ol/li/a[@href="suiyue"]/text()')
# @ :指定标签属性 ;a[@href="suiyue"]/text():根据标签属性打印文本
print(result)

#4.相对查找,获取内容
ol_li_list = tree.xpath("/html/body/ol/li")
print(ol_li_list) #找到3个节点

for li in ol_li_list:
#循环,从每一个li提取文字信息
result = li.xpath("./a/text()") #从li继续寻找(相对查找)
# ./ :表示当前节点
print(result)
result = li.xpath("./a/@href") #/@+属性类型:我们就可以拿到这个标签里面某种属性的值
print(result)

#5.获取标签属性值
print(tree.xpath('/html/body/ul/li/a/@href'))
# a/@href: a标签属性href 所有的值

小技巧
# 利用谷歌浏览器:F12程序员,快速复制Xpath路劲
print(tree.xpath("/html/body/div[1]/text()"))

Xpath 常用语法展示的更多相关文章

  1. XPath 常用语法札记

    * 不包含属性的元素 例如不包含属性的span: span[not(@*)] * 文本包含某部分的元素 例如文本包含Rank的元素: *[contains(text(),'Rank')] * 选择匹配 ...

  2. Markdown通用的常用语法说明

    前言 Markdown 是一种轻量级的 标记语言,语法简洁明了.学习容易,还具有其他很多优点,目前被越来越多的人用来写作使用. Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表 ...

  3. 转载:XPath基本语法

    出处:http://www.cnblogs.com/Miko2012/archive/2012/10/26/2740840.html XPath的语法最基本的节点之间用/,属性用@,还有几个函数记住了 ...

  4. python MVC、MTV 框架介绍 Django 模板系统常用语法

    Django 框架简介一.MVC框架和MTV框架1.MVC 全名Model View Controller,是软件工程中的一种软件架构模式,把软件系统分为三个基本部分.优势: 耦合性低 重用性高 生命 ...

  5. Markdown:常用语法

    1.标题 说明:一共可以6级标题,几级几个# 一级标题 #一级标题 2.代码 用前后扩上 Hello World! 3.代码块 用前后扩上 Hello World! 4.加粗 加粗了 **加粗了** ...

  6. MarkDown常用语法表

    MarkDown常用语法表 本文提供全流程,中文翻译.Chinar坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 -- 高分辨率用户请根据需求调整网页缩放比例) 1 Title - 标题 2 H ...

  7. MySQL的DML常用语法格式

    MySQL的DML常用语法格式 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们知道MySQL的查询大致分为单表查询,多表查询以及联合查询.多表查询,顾名思义,就是查询的结果可能 ...

  8. Vue常用语法及命令

    1,Vue常用语法 vue常用语法之变量的定义 // 1,变量相关 // 变量的提升 var username = "雪雪"; var username ; console.log ...

  9. markdown 常用语法总结 - 个人版

    这里并不是要总结所有的 markdown 语法,只是总结笔者自己撰写博客时常用的一些 markdown 语法. 1 图片设置 1.1 设置图片位置 利用markdown在编写文档时插入图片是默认靠左, ...

  10. python3+selenium常用语法汇总

    Selenium常用语法总结 一.Selenium常用定位语法 1.元素定位 (1)ID定位元素: find_element_by_id(‘’) (2)通过元素的类名称定位元素: find_eleme ...

随机推荐

  1. 暴风影音16 v9.05.1202.1111 绿色版

    修改历史:2022.12.14:自改官方 9.05.1202.1111 最新正式版本2022.06.27:自改官方 9.04.1029.1111 最新正式版本...... 修改内容:by.呆彤儿 / ...

  2. Eclipse git提交代码 覆盖问题

    创建本地分支 拉取远程分支到本地 进行代码更新 然后 commit  然后将本地代码推送到远程分支 再发起合入请求 使用elipse 提交合入代码时, 注意push 提交远程分支时,  选择中  要选 ...

  3. API 文档

    API 文档 Java类的组织形式 使用API查找方法: 包 -> 类 -> 方法 直接检索:Math

  4. el-table多选框根据条件隐藏显示

    提供一个方法, 通过添加相应类来控制样式,设置 display: none ,达到隐藏 checkbox 的目的. 利用Table Attributes 属性里面的 cell-class-name 属 ...

  5. 同一个tomcat的项目跳转

  6. QML笔记

    文章钢要: 1.qml基础知识 2.qml语言技巧 一.QML basic types QML Language提供的基础类型:int ,bool,string,double,real,var,url ...

  7. 如何在mac上配置Apache服务器

    ​ 如何在mac上配置Apache服务器 1. 打开终端,开启Apache: //开启apache:  sudo apachectl start //重启apache:  sudo apachectl ...

  8. HTML网址集合

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  9. java报错 SLF4J:Failed to load class "org.slf4j.impl.StaticLoggerBinder"

    <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-simple</artif ...

  10. (jmeter笔记) websocket接口测试

    1.在进程选择WebSocket Sampler 2.Websocket Sampler 界面 webserver Server Name or IP:输入连接的websocket服务器ip Port ...