xpath语法和指令系统

一、认识xpath和xml数据

​ # lxml是Python基于xpath做数据解析的工具

  1. xpath数据解析 - 通过提供标签路径来获取标签(xpath指的就是标签的路径)

    1)xpath基本感念
    树: 整个html内容或者整个xml内容
    节点:树结构中的每个标签(元素)就是一个节点
    根节点:树结构中的第一个节点就是根节点(网页对应树的根节点是html标签)
    节点内容:双标签的标签内容
    节点属性:标签的标签属性

    2)路径 - 目标节点在整个树结构中的位置信息

  2. xml数据格式

    xml和json都是通用的数据格式,可以用于不同编程语言的程序之间进行数据交流。

​ json更小更快;xml更安全

二、xpath语法

​ 1.创建树获取树的根节点

​ etree.XML(xml数据)

​ etree.HTML(html数据)

​ 2.通过xpath路径获取节点(标签)

​ 节点对象.xpath(路径) - 获取指定路径对应的所有的标签

​ xpath语法(路径的写法):

​ 1)绝对路径:不管xpath点前面是哪个标签,绝对路径都是以’/'开头,从根节点开始往后写

​ 2)相对路径:在写路径的时候用’.‘表示当前节点,用’…'表示当前节点的上层节点。谁去点的xpath当前节点就是谁

​ 3)全路径:在写路径的时候用’//'开头,获取标签的时候是在整个树中获取所有满足路径结构的标签

​ 1)绝对路径

​ 在路径的最后加’/text()'可以获取标签内容

​ 注意:不断xpath前面是谁去点的,写绝对路径的时候都必须从根节点开始写

​ 2)相对路径

​ 相对路径中’./‘开头的时候,’./'可以不写

​ 3)全路径

  1. xpath的谓语(条件) - 在路径中需要添加条件的节点后加’[谓语]’

    1)和位置相关条件

​ [N] - 第N个节点

​ [last()] - 最后一个节点

​ [last()-N] - [last()-1]: 倒数第2个

​ [position()>N]、[position()<N]、[position()>=N]、[position()<=N]

​ 2)和属性相关条件

​ [@属性名=值] - 获取指定属性为指定值的标签

​ [@属性名] - 获取拥有指定属性的标签

​ 3)和子标签内容相关条件

​ [子标签名=值] - 获取指定子标签的标签内容为指定值的标签

​ [子标签名>值] - 获取指定子标签的标签内容大于指定值的标签

​ 4.获取标签内容和标签属性

​ 获取标签内容: 获取标签的路径/text() - 获取路径选中的所有的标签的标签内容

​ 获取标签内容: 获取标签的路径/@属性名 - 获取路径选中的所有的标签的指定属性的值

​ 5.统配符*

​ 在xpath路径中可以用*来代替任何标签或者任何属性

​ 6.若干(分支) - |

​ 路径1|路径2 - 依次获取|分开的所有路径对应的内容

三、指令操作系统

​ 执行指令的工具: Windows - 命令提示符(cmd)

​ Mac - 终端

​ 1. 运行python程序 - 运算程序的计算机必须先安装python环境

​ win: python py文件路径

​ mac: python3 py文件路径

​ 注意:windows使用python指令执行Python程序的时候必须保证写指令的位置和py文件在同一个盘下面;如果不在同一个盘,执行指令前先切盘

​ 2. 进入文件夹: cd

​ cd 文件夹相对路径、文件夹绝对路径

​ 注意:如果是windows操作系统,cd操作如果要跨盘需要先切盘,然后再cd

​ 切盘方法:C:、E:、D:

​ 3. 查看当前文件夹的内容

​ win: dir

​ Mac:ls

​ 4. 用指令创建虚拟环境

​ 第一步:找到一个用来放虚拟环境的文件夹

​ 第二步:通过cd指令进入到存放虚拟环境的文件夹中

​ 第三步:创建虚拟环境

​ python -m venv 虚拟环境名

​ python3 -m venv 虚拟环境名

​ 第四步:激活虚拟环境

​ (mac) source 虚拟环境目录/bin/activate

​ (windows) 虚拟环境目录\ Scripts\activate.bat

​ 第五步:退出虚拟环境(回到系统环境)

​ deactivate

​ 5.常用pip指令(pip - Python包管理工具)

​ pip list - 查看当前环境已经安装过的所有的第三方库

​ pip install 第三方库名称 - 下载并且安装指定的第三方库

​ pip install 第三方库名称 -i 镜像地址 - 在指定的镜像地址中下载安装

​ pip install 第三方库名称==版本号 -i 镜像地址

​ pip install 第三方库名称1 第三方库名称2

​ pip freeze > 依赖文件名 - 生成依赖文件

​ pip install -r 依赖文件路径 - 批量安装

​ pip uninstall 第三方库名称 - 卸载指定的第三方库

xpath语法和指令系统相关推荐

  1. 爬虫之xpath语法-常用节点选择语法

    爬虫之xpath语法-常用节点选择语法 可以通过通配符来选取未知的html.xml的元素 1.1 选取未知节点的语法 通配符 描述 * 匹配任何元素节点. node() 匹配任何类型的节点. 1.2 ...

  2. 爬虫之xpath语法-节点修饰语法

    爬虫之xpath语法-节点修饰语法 可以根据标签的属性值.下标等来获取特定的节点 1.1 节点修饰语法    [用[ ]方括号修饰标签或节点] 1.2 关于xpath的下标 在xpath中,第一个元素 ...

  3. 爬虫之 lxml模块和xpath语法

    爬虫之 lxml模块和xpath语法 对html或xml形式的文本提取特定的内容,就需要我们掌握lxml模块的使用和xpath语法. lxml模块可以利用XPath规则语法,来快速的定位HTML\XM ...

  4. Xpath语法-爬虫(一)

    前言 这一章节主要讲解Xpath的基础语法,学习如何通过Xpath获取网页中我们想要的内容;为我们的后面学习Java网络爬虫基础准备工作. 备注:此章节为基础核心章节,未来会在网络爬虫的数据解析环节经 ...

  5. python xpath语法-XPath语法和lxml模块(数据提取)

    XPath语法和lxml模块 XPath lxml库 1.什么是XPath? XPath (XML Path Language) 是一门在 XML 文档中查找信息的语言,可用来在 XML 文档中对元素 ...

  6. python xpath语法-Python爬虫之XPath语法和lxml库的用法

    本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 安装 为什么要用这个库 ...

  7. python xpath语法-Python爬虫基础之XPath语法与lxml库的用法详解

    前言 本来打算写的标题是XPath语法,但是想了一下Python中的解析库lxml,使用的是Xpath语法,同样也是效率比较高的解析方法,所以就写成了XPath语法和lxml库的用法 XPath 即为 ...

  8. python xpath语法-Python Xpath语法

    一.python数据提取xpath 1.beautifulsoup xpath 正则表达式 2.xpath是一种在XML和HTML文档中查找信息的语言,可用来在XML和HTML中对元素进行遍历 Chr ...

  9. python xpath语法-python xpath 基本用法

    发布时间: pythonercn 8 months, 3 weeks ago 在进行网页抓取的时候,分析定位html节点是获取抓取信息的关键,目前我用的是lxml模块(用来分析XML文档结构的,当然也 ...

最新文章

  1. python中使用squarify包可视化treemap图:使用treemap图可视化个人或者集体的股票、基金的持仓结构(treemap with squarify package)
  2. svn教程----TortoiseSVN常用操作
  3. java中输入char类型_java中如何输入char类型
  4. boost::geometry::line_interpolate用法的测试程序
  5. 我是如何解决asp.net程序在dreamWeaver中布局乱码的问题
  6. cdoj 1092 韩爷的梦
  7. 《Java程序员,上班那点事儿》征文活动获奖名单
  8. python 通达信函数_python调用通达信公式,大智慧公式转python
  9. VSCode沙绿色主题设置
  10. 显卡compute capability7.5 Python3.5.2环境下编译配置caffe
  11. 计算机数学基础 周密,一位计算机牛人的心得谈计算机和数学免费.doc
  12. Java.Canvas
  13. 第一次找工作/实习前需要准备的东西(互联网行业)
  14. firefly AIO-RK3399J Linux SDK编译报错解决
  15. 非标自动化设备涉及的行业有哪些?
  16. 【SequoiaDB|巨杉数据库】整体架构Ⅰ
  17. 专业名词解释 - DNS,A记录,子域名,CNAME别名,PTR,MX,TXT,SRV 记录,TTL
  18. 诺基亚(Nokia 5110)5110屏驱动(STM32)
  19. 房屋租赁系统的C++实现
  20. 欧盟ERP能效测试项目和标准

热门文章

  1. html中js判断字数截取,JS判断字符串字节数并截取长度的方法
  2. 〖Python WEB 自动化测试实战篇⑬〗- 实战 - 数据驱动在自动化测试中的应用
  3. Android开发工具---SQLiteManager插件
  4. 安装gcc, cmake和itk
  5. nfs挂载报错mount.nfs: Stale file handle解决(失效文件句柄)
  6. 如何在Android中取得当前进程名
  7. 失败的自我介绍,让我失去进入微软的机会
  8. iOS开发视频教程《时空猎人横版过关》-任亮-专题视频课程
  9. 转载:16条有用的句子
  10. c语言 strcpy作用,C语言strcpy的用法。