【爬虫基础】CSS选择器,XPath选择器

XPath

什么是XPath?

  • xpath(XML Paht Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。

XPath开发工具

  • Chrome插件XPath Helper。
  • Fiefox插件Try XPath

XPath节点

  • 在XPath中,有7类节点:元素,属性,文本,命名空间,处理指令,注释以及文档(根)节点。XML文档是被作为节点树来对待的。树的根被称为文档节点或者根节点。

XPath语法

  • 最常用的表达式
表达式 描述
/ 从根节点选取。或者是元素和元素间的过度
// 从匹配选择的当前节点选择文档中的节点,而不考虑他们的位置
. 选取当前节点
. . 选取当前节点的父节点
@ 选取属性
text() 选取文本
  • 路径表达式以及表达式的结果
表达式 结果
bookstore 选择bookstore元素
/bookstore 选取根元素bookstore。注释:假如路径起始于正斜杠(/),则此路径始终代表到某元素的绝对路径
bookstore/book 选取所有book子元素,而不管它们位于bookstore之下的什么位置
//book/title/@lang 选择所有的book下面的title中的lang属性的值
//book/title/text() 选择所有的book下面的title文本
/bookstore/* 选取bookstore元素的所有子元素
//* 选取文档中所有的元素
//title[@*] 选取所有带属性的title元素
  • 选取未知节点
通配符 描述
* 匹配任何元素节点
@* 匹配任何属性节点
node() 匹配任何类型的节点

案例

html_str = """
        <div> 
            <ul> 
                <li class="item-1">
                    <a href="link1.html">第一个</a>
                </li> 

                <li class="item-2">
                    <a href="link2.html">第二个</a>
                </li> 

                <li class="item-3">
                    <a href="link3.html">第三个</a>
                </li> 

                <li class="item-4">
                    <a href="link4.html">第四个</a>
                </li> 

                <li class="item-5">
                    <a href="link5.html">第五个</a> 
                </li>
            </ul>
        </div>
"""
import parsel
# 转换数据类型
# 把 html 字符串数据转换成一个 Selector 对象
# Selector 就具有一系列数据解析的方法  css/xpath/re
data = parsel.Selector(html_str)
找到针对任何元素的优化的XPathCSS选择器,浏览/搜索CSS选择器 XPath CSS资源管理器此工具旨在为Web开发人员提供探索网页结构并生成优化且健壮的XPathCSS选择器的功能,以便在他们的测试和其他用例中使用它们。 除了绝对XPath以外,其他路径都经过优化,以使其简短且通用,足以承受页面播放的某些更改。 这是通过利用ID和唯一的类信息以及某些可靠的属性(例如名称,标题等)来实现的。探索选择器本节是探索网页结构的一种奇妙方法。 它提供了一个搜索框,用于输入CSSXPath表达式。 输入时,它概述了所有符合条件的Web元素。 例如,键入并输入“ div”,以查找并概述页面中的所有div。 任何合法CSS / XPath表达式均可在此处使用。 导航UI会显示所有匹配的选择器以及当前选择器。 它允许在找到的匹配项之间循环。 当前选择器本节旨在使用一组试探法为网页中的任何Web元素提供健壮且优化的选择器路径。 可以将此类路径嵌入Selenium或类似工具中,以创建对UI更改具有鲁棒性的测试。 该面板会自动为“元素”面板中的当前选定Web项目生成路径。 页面CSS信息本节提供了一种了解当前页面上所有可用ID和Class元素的方式。 如果徽章中有多个元素,则带编号的徽章表示计数。 通过单击来浏览每个项目,然后将其传播到搜索框以生成轮廓。 请提供反馈意见,以将其合并到将来的版本中。 希望该工具有所帮助! 支持语言:English
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值