xpath是什么(入门教程)

一、总结

一句话总结:一句话,XPath 是一门在 XML 文档中查找信息的语言。简单来说,html类似于xml结构,但是没有xml格式那么严格。

在xml中查找信息 包括html

1、如何获取想要部分的xpath路径?

使用chrome

chrome 谷歌浏览器中很方便找到

2、xpath验证工具?

google浏览器扩展XPath_Helper

google浏览器扩展 XPath Helper

样子如下:

3、xpath的特点?

简单 易学 和常规的电脑系统文件路径中的表达式非常相似

XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

可以随便去网上找个教程,很快很快学会

比如:XPath 教程 | 菜鸟教程
http://www.runoob.com/xpath/xpath-tutorial.html

二、xpath入门教程(转)

转自:xpath入门教程 - liwenbo_csu的博客 - CSDN博客
https://blog.csdn.net/liwenbo_csu/article/details/78540376

 
大部分程序开发者应该都有过爬取网页的经历,每个人爬取的方法也不太相同,有的用强大的正则表达式,有的用selector,有的也会用第三方提供的插件等等。每种方法都有各自的优缺点,比如正则的抓取效率问题但是通用性强,selector上手难度,插件类比如simple_dom_php抓取不到直接error退出进程问题等等。这里不做过多评价,只介绍一个好用的、强大的、易上手的抓取工具xpath。
 
什么是xpath
一句话,XPath 是一门在 XML 文档中查找信息的语言。简单来说,html类似于xml结构,但是没有xml格式那么严格。
 
十分钟入门xpath
入门用法,如何抓取百度首页图片链接
使用谷歌浏览器获取需要抓取元素的xpath路径
把自动生成的路径拷贝到代码中(ps:这里把网页代码保存在了本地!)
运行查看结果

第二步:掌握基本语法,xpath语法类似于路径选择,非常容易上手
以下图html举例如何获取不同的节点:
方法一:根据路径获取节点信息
方法二:根据属性值快速选取节点
掌握以上几种常用法,基本上就可以快速开发一个页面的抓取功能了,是不是非常简单,赶紧自己动手试试吧。更深入的用法无非是在上面基础上加了一些函数操作,具体可以搜索xpath教程,这里只做入门,不再深入介绍。
 
性能如何?
这里我使用上述html建立了以下基准进行测试:
1、使用PHP语言 (php版本5.4.41)
2、选取相同网页,约20W字符 (www.baidu.com)
3、各抓取一千次 (循环一千次,抓取所有img标签的图片地址)
分别用正则和xpath进行抓取,比较处理时间。
首先定义两个抓取方法:
循环调用一千次,得出结论:本次测试,xpath爬取可以做到秒级;正则是分钟级别
说明:上述测试基准可能不太明确,但是差异较大已经足够得到我们需要的对比结果。
 
总结一下:
XPath的优势在于它的速度,这是因为它把html以树形的结构进行存储,在你通过层级关系查找节点的时候,并不需要对所有字符串进行遍历,它的底层是通过libxml构建一棵DOM树实现的查找。
XPath其实并不容易掌握(ps:我的意思是要深入掌握),它的语法和函数都非常多,学习起来成本也比较高,但是在普通的抓取业务中,只需要掌握一些基本的就足够了。
XPath的语法和规则跟语言是无关的。
这里只讨论了xpath对单个网页的爬取新的基本方法,帮助开发人员快速抓取网页中的信息。因为简单快速,适用范围必然比不上强大的正则表达式,可以根据各自的应用场景选择。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

xpath是什么(入门教程)的更多相关文章

  1. 网页结构的简介和Xpath语法的入门教程

    相信很多小伙伴已经听说过Xpath,之前小编也写过一篇关于Xpath的文章,感兴趣的小伙伴可以戳这篇文章如何利用Xpath抓取京东网商品信息以及Python网络爬虫四大选择器(正则表达式.BS4.Xp ...

  2. 【Hawk】入门教程(1)——从URL开始

    入门教程(1)--从URL开始 首先感谢辛苦的沙漠君 先把沙漠君的教程载过来:)可以先看一遍 Hawk-数据抓取工具:简明教程 Hawk 数据抓取工具 使用说明(二) 20分钟无编程抓取大众点评17万 ...

  3. [转]Scrapy入门教程

    关键字:scrapy 入门教程 爬虫 Spider 作者:http://www.cnblogs.com/txw1958/ 出处:http://www.cnblogs.com/txw1958/archi ...

  4. Scrapy入门教程

    关键字:scrapy 入门教程 爬虫 Spider作者:http://www.cnblogs.com/txw1958/出处:http://www.cnblogs.com/txw1958/archive ...

  5. 转:Scrapy安装、爬虫入门教程、爬虫实例(豆瓣电影爬虫)

    Scrapy在window上的安装教程见下面的链接:Scrapy安装教程 上述安装教程已实践,可行.(本来打算在ubuntu上安装Scrapy的,但是Ubuntu 磁盘空间太少了,还没扩展磁盘空间,所 ...

  6. Scrapy安装、爬虫入门教程、爬虫实例(豆瓣电影爬虫)

    Scrapy在window上的安装教程见下面的链接:Scrapy安装教程 上述安装教程已实践,可行.(本来打算在ubuntu上安装Scrapy的,但是Ubuntu 磁盘空间太少了,还没扩展磁盘空间,所 ...

  7. scrapy爬虫框架入门教程

    scrapy安装请参考:安装指南. 我们将使用开放目录项目(dmoz)作为抓取的例子. 这篇入门教程将引导你完成如下任务: 创建一个新的Scrapy项目 定义提取的Item 写一个Spider用来爬行 ...

  8. python之scrapy入门教程

    看这篇文章的人,我假设你们都已经学会了python(派森),然后下面的知识都是python的扩展(框架). 在这篇入门教程中,我们假定你已经安装了Scrapy.如果你还没有安装,那么请参考安装指南. ...

  9. Scrapy入门教程(转)

    关键字:scrapy 入门教程 爬虫 Spider作者:http://www.cnblogs.com/txw1958/出处:http://www.cnblogs.com/txw1958/archive ...

随机推荐

  1. py4CV例子1猫狗大战和Knn算法

    1.什么是猫狗大战: 数据集来源于Kaggle(一个为开发商和数据科学家提供举办机器学习竞赛.托管数据库.编写和分享代码的平台),原数据集有12500只猫和12500只狗,分为训练.测试两个部分. 2 ...

  2. 0x17二叉堆之超市

    题目链接:https://www.acwing.com/problem/content/147/ 容易想到一个贪心策略:在最优解中,对于每个时间(天数) t,应该在保证不卖出过期商品的前提下,尽量卖出 ...

  3. 尚硅谷面试第一季-10SpringMVC的工作流程

    目录结构: 关键代码: web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app xml ...

  4. App Store 审核指南

    App Store 审核指南 https://developer.apple.com/app-store/review/guidelines/cn/ https://developer.apple.c ...

  5. bzoj1497 [NOI2006]最大获利 最大权闭合子图

    链接 https://www.lydsy.com/JudgeOnline/problem.php?id=1497 思路 最大权闭合子图的裸题 一开始知道是这个最大权闭合子图(虽然我不知道名字),但是我 ...

  6. 轻重搭配|计蒜客2019蓝桥杯省赛 B 组模拟赛(一)

    样例输入: 6 1 9 7 3 5 5 样例输出: 4 思路:贪心,选错贪心思路,只能过一小部分数据,正确贪心思路:从前一半遍历,在后一半中找到比当前元素的两倍大的数(因为这里指针不会后移,所以可以采 ...

  7. 永久修改VS include目录

    原文:https://blog.csdn.net/sysprogram/article/details/49214727 VS2008在选项里可以设置全局的Include目录和Lib目录, 但是VS2 ...

  8. oracle单行函数 之 数字函数

    Round(数字 \ 列 [,保留小数的位数]):四舍五入   select Round(1234.45,1) from dual  =  1234.5 Trunc(数字 \ 列 [,保留小数的位数] ...

  9. p3168 [CQOI2015]任务查询系统(差分+主席树)

    恕我才学浅薄,一开始想到的是树状数组+线段树,然后看了题解才第一次见到了差分这种神奇的科技 仔细想想,主席树的本质不就是前缀和嘛,加上一个差分也是可以的,没想到真是罪过罪过 对时间维护一个差分 在Si ...

  10. Redis,Memcache比较

    简单比较: Redis不仅仅支持简单的k/v类型的数据,同时还提供list,set,hash等数据结构的存储.memcache只支持简单的K/V类型数据, 不过memcache可以缓存其他东西如图片, ...