什么是Xpath及其用法

什么是Xpath及其用法,第1张

1 XPath是什么

XPath是一门在XML文档中查找信息的语言。XPath可用来在XML文档中对元素和属性进行遍历。

XPath即为XML路径语言(XML Path Language),它是一种用来确定XML文档中某部分位置的语言。

XPath基于XML的树状结构,提供在数据结构树中找寻节点的能力。起初XPath的提出的初衷是将其作为一个通用的、介于XPointer与XSL间的语法模型。但是XPath很快的被开发者采用来当作小型查询语言。

2 Xml示例 可扩展标记语言,标准通用标记语言的子集,简称XML。是一种用于标记电子文件使其具有结构性的标记语言。

在电子计算机中,标记指计算机所能理解的信息符号,通过此种标记,计算机之间可以处理包含各种的信息比如文章等。它可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言进行定义的源语言。它非常适合万维网传输,提供统一的方法来描述和交换独立于应用程序或供应商的结构化数据。是Internet环境中跨平台的、依赖于内容的技术,也是当今处理分布式结构信息的有效工具。早在1998年,W3C就发布了XML10规范,使用它来简化Internet的文档信息传输。

示例:

<?xml version="10" encoding ="ISO-8859-1">

<book>

<title lang="en">Harry Potter</title>

<author>J K Rowling</author>

<year>2005</year>

<price>2999</price>

</book>

    (1)有些web项目是前后端不分离的,返回的内容不是那种纯进口返回json格式,返回的是一个HTML页面。并且有些参数是隐藏在html里面的,需要先从html页面中取出隐藏参数。例如tinyshop商城。

那么接下来就是提取这个tiny_token_的value值

(2)用xpath提取器获取tiny_token_的值,用xpath定位方法定位到该元素的相对路径,表达式为://[@id="search-form"]/input[3]/@value

(3)引用的步骤与正则表达式的一致,${token}

到目前为止我一直用的xpath方式爬取页面数据。

我所采取的方法是直接利用xpath爬取其中一条,判断是否能采取这种方法。

目前遇到的坑有,总结一下

解决方法是,从新分析xpath路径。绕过这个根节点,从下一级找一个新的根节点

在爬取多个页面的时候我们需要从URL中找到规律,再利用遍历达到多个页面爬取的目的。例如

之前我们在学习GET传递参数的时候,知道URl+?+参数1&参数2+&参数n传递参数。这里我们通过对比两页的URL,把多余的传参删除,留下非常简练的链接,当然必须包括keyword,和分页如file= 1等

对上面的URL简化

keyword:PHP,分页curPage = 1,对分页keyword,进行遍历拼接。达到了多页爬取的目的

由于网页结构问题,网页中回家如&ndsp的空格字符,你爬取的数据会左右开弓,非常凌乱。整体美观受到影响。解决方法是strip()函数"itemnamestrip()"

当时是爬取51job,取到的前三个字段为空,在插入excel时会出现三个空字段,分析发现是div标签,第一个字段是div[4]。当时想的办法是从divp[4]开始取值。失败,最后解决方法是还是利用strip函数判断字段是否为空,不为空取出数据插入list。

从开始接触,我们习惯了默认的UTF-8编码。在突然遇到不同的编码方式如'gbk',你爬取的字段就是一堆乱码

这个是我,一直跑火车,跑习惯了。红灯乱闯。

我没有加headers,也就是当前网页的绿灯。这个是真的没有想到,之前一直是以为headers 是模仿浏览器才去用。所以往往第一步就把我挡在了外面。

所以在爬取不管哪个网站你最好是加上headers,遵守交通规则。才能爬到你想要的数据

吃亏是福啊,在python的路上多吃点亏没错

以上就是关于什么是Xpath及其用法全部的内容,包括:什么是Xpath及其用法、jmeter接口测试—xpath提取器、那些年用xpath玩爬虫时遇到的坑等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9554537.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存