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. 13:python-ldap

    1.1 python-ldap 基本使用 11111111111111111111

  2. Android图片裁剪解决方案 -- 从相册截图

    在看Storage Access Framework,里面有一个加载相册图片的程序片断,可能是系统版本的问题,无法返回结果,这里找到一个适用于旧版本的方法. 在Android开发中,可以轻松调用一个I ...

  3. C++的STL之map自动排序特性

    #include <iostream> #include <map> using namespace std; int main() {方法一: map<int,int& ...

  4. 《HTML与CSS 第一章 认识HTML》读书笔记

    一.Web让广播明星黯然失色 要建立Web页面,需要创建用超文本标记语言(HyperText Markup Language,HTML)编写的文件,把它们放在一个Web服务器上 二.Web服务器能做什 ...

  5. CSS的再一次深入(更新中···)

    全面我们学了6个选择器,今天再来学习两个选择器,分别是通配符选择器和并集选择器: 1.通配符选择器: *{ } 表示body里所有的标签都被选中 2.并集选择器: 选中的标签之间用逗号隔开,表示这几个 ...

  6. Python3 tkinter基础 Entry validate isdigit 只能输入数字的输入框

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  7. Python3基础 list count 查询指定元素在列表中出现了多少次

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  8. (转) GAN论文整理

    本文转自:http://www.jianshu.com/p/2acb804dd811 GAN论文整理 作者 FinlayLiu 已关注 2016.11.09 13:21 字数 1551 阅读 1263 ...

  9. call继承父级属性,prototype继承父级方法

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  10. HTML基本内容

    设置背景色:<body bgcolor="#AAAAAA">,设置背景图:<body background="1.png">. 颜色的知 ...