3个字母,抓取4943条数据,超实用的XPath爬虫工具教学!

当你想要快速批量采集某个网站的内容时,首先想到的会是什么?

有的朋友可能会想到爬虫工具,但大部分人基本也只是听过,没用过。如果要用的话,会不会很复杂?要不要学习什么技术?

今天就给大家分享一个实用的网页内容批量采集工具XPath,不需要复杂的准备工作,就能快速上手,尤其适用于轻量化的网页内容抓取。

掌握了XPath的用法之后,只需3个字母,就可以抓取4943条数据。接下来,我以一个真实的网页内容抓取需求为例,详细讲解XPath的用法。

假设你正在开展一项研究,需要收集餐饮连锁品牌的名单,这时候找到一个网站:

https://www.maigoo.com/brand/list_1811.html

网站上有数十个餐饮连锁的名单,如果是一个个复制粘贴,50个就需要来回操作上百次,倘若还要搜集其他的名单,这一天下来不仅效率极低,手估计也要废了。

如何能够一键抓取这些品牌的名单呢?这时候XPath就帮大忙啦。


一、准备工作

在正式开始之前我们需要先做好准备工作,这里列出了所有的准备清单。

1、安装Chrome(谷歌)浏览器

https://www.google.cn/intl/zh-CN/chrome/

2、安装XPath Helper插件

方法一:(有梯子可以直接前往chrome应用商店下载,避免安装出错)

https://chrome.google.com/webstore/detail/xpath-helper/hgimnogjllphhhkhlmebbmlgjoejdpjl

方法二:没梯子可下载安装包,可能有的浏览器版本不适配,文末有安装包获取方法

3、抓取的目标网站

4、没接触过XPath的朋友, 可前往此处学习详细的使用教程

https://www.runoob.com/xpath/xpath-tutorial.html

所有的案例资料和插件工具,我都打包整理好了,加微信yesaze (备注XPath)即可领取。


二、安装XPath Helper插件

1、打开Chrome浏览器,点击右上角“ ”按钮,选择“更多工具”-> “扩展程序”

2、打开右上角“开发者模式”,点击“加载已压缩的扩展程序”,选择已解压的XPath helper 插件文件夹(XPath helper插件只能在谷歌浏览器中使用)

3、当扩展程序中出现XPath helper时,就代表安装成功了

4、在Macbook上按shift+command+X键,可以快速唤起和隐藏XPath Helper(Windows的快捷键是Ctrl+Shift+X)


三、抓取网页内容

1、什么是XPath?

XPath 是一门在 XML 文档中查找信息的语言。而XML是一种结构化的编程语言,如果不理解也没关系。

你只需要知道,我们所看到的的网页,其实是由有规律、有结构的代码组成,我们所要提取的内容,就在这些结构化的代码里面。

XPath可以帮助我们根据网页的结构路径,灵活编写爬虫脚本,定位到我们需要的内容,从而进行抓取。

打开前面案例中的链接:

https://www.maigoo.com/brand/list_1811.html

我们看到的是排布整齐的图文,当我们点击鼠标右键→检查,可以看到页面的内容都是有固定结构的,一级一级向下展开。

XPath 使用路径表达式在 XML 文档中选取节点。如果我们需要提取餐饮品牌的名称,只需要编写对应的路径即可。

在 XPath 中,有七种类型的节点:元素、属性、文本、命名空间、处理指令、注释以及文档(根)节点。

<li>
<div class="info">
<a target="_blank">KFC肯德基</a> 
</div>
</li>

以上代码是从网站中截取的XML代码,为了便于讲解,做了精简处理。其中文档节点、元素节点、属性节点例子如下:

<li> (文档节点)
<a target="_blank">KFC肯德基</a>(元素节点)
target="_blank" (属性节点)
  

在这个案例中,我们可以看到,li里面包含了div,它们统称为节点,li是父节点,div是子节点。依此类推div里面又包含了a,它们又构成父子节点关系。

其中info、_blank等值,没有父或子节点,称之为基本知识,就是最基础的元素。

2、如何编写爬虫路径?

理解了节点的概念,我们只需要编写一个路径,从大到小,逐级定位到我们需要的内容节点即可。那要如何编写路径呢?

我们用双斜杠//表示从匹配选择的当前节点选择文档中的节点,而不考虑它们相对位置。如//li,表示选取所有li子元素,而不管它们在文档中的位置。

形如 //li//div//a/text() 表示定位到所有li下的所有div,所有div下的所有a,并提取其中的文本内容,(text()表示提取文本内容)

此时我们将语句输入XPath helper,发现有很多空的内容也被抓取了。先别着急,完整的语句应该是:

//li//div[@class=“info”]/a/text()

与前面的语句相比,其中多了一个**[@class=“info”]**,这个的意思是选取所有 div 元素,且这些元素拥有值为 info 的 class 属性。这样定位就更精准了。

最后我们只需要全选复制结果即可,通过短短几个语句就能快速采集网页内容。

对于没有接触过XPath的朋友,可能有点晦涩难懂,建议还是详细阅读一下学习教程,半个小时就能掌握语句的含义和用法,能为以后采集内容省去不少时间。


四、补充案例

如果说刚才的案例不太好理解,那我们再来看一个简单的案例,如何用3个字母抓取4943条数据?

在网站

https://www.maigoo.com/category/zhishi/

中,详细罗列了不同的行业类别及子类目,只需要通过**//li/a**这简短的语句,就能把所有类目抓取下来。

//li/a表示定位到所有li下的a,这个网页结构比较简单,只要能快速识别结构,就能轻松写出路径。

同理如果我们只需要抓取左侧的品牌大类,只需写出相应的路径即可

//div[@id=“leftcatlist”]/a,表示定位到包含id="leftcatlist"属性的div下的所有a,21个品牌大类的数据就轻松完成采集了。

以上就是XPth案例教学的全部内容,其中只用到了一部分XPath的能力,还有更多功能等待你去探索。想要系统学习推荐前往

https://www.runoob.com/xpath/xpath-tutorial.html

了解详情,有完整免费的教程内容。

工具就是熟能生巧,长时间不用就容易遗忘,所以想要熟练掌握一是要勤加练习和使用。书到用时方恨少,事到经过才知难。

如果觉得有帮助建议收藏备用,反复阅读。

此外我这里准备了详细的Python资料,除了为你提供一条清晰的学习路径,我甄选了最实用的学习资源以及庞大的实例库。短时间的学习,你就能够很好地掌握爬虫这个技能,获取你想得到的数据。

01 专为0基础设置,小白也能轻松学会

我们把Python的所有知识点,都穿插在了漫画里面。

在Python小课中,你可以通过漫画的方式学到知识点,难懂的专业知识瞬间变得有趣易懂。
在这里插入图片描述
在这里插入图片描述
你就像漫画的主人公一样,穿越在剧情中,通关过坎,不知不觉完成知识的学习。

02 无需自己下载安装包,提供详细安装教程

在这里插入图片描述

03 规划详细学习路线,提供学习视频

在这里插入图片描述
在这里插入图片描述

04 提供实战资料,更好巩固知识

在这里插入图片描述

05 提供面试资料以及副业资料,便于更好就业

在这里插入图片描述
在这里插入图片描述
这份完整版的Python全套学习资料已经上传CSDN,朋友们如果需要也可以扫描下方csdn官方二维码或者点击主页和文章下方的微信卡片获取领取方式,【保证100%免费】
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
提取,编辑和轻松评估XPath查询。 XPath的助手很容易提取,编辑,并在任何网页评估XPath查询。 重要提示:安装此扩展后,必须重新加载任何现有的选项卡或重新启动Chrome浏览器扩展工作。 说明: 1.打开一个新的标签,并导航到任何网页。 2.按Ctrl-Shift键-X(或OS X命令移-X),或单击工具栏上的XPath的助手按钮,以打开XPath助手控制台。 3.按住Shift键将鼠标悬停在页面上的元素。查询框将不断更新,以显示鼠标指针下方的元件XPath查询,结果框将显示当前查询的结果。 4.如果需要,请在控制台直接编辑XPath查询。结果框会立即反映更改。 5.重复步骤(2)关闭控制台。 如果控制台在你的方式获得,按住Shift键,然后将鼠标移动到它; 它会移动到页面的相对侧。 一个忠告:当渲染HTML表格,浏览器插入人工<TBODY>标记到DOM,这将在随后通过该扩展提取查询显示出来。 Extract, edit, and evaluate XPath queries with ease. XPath Helper makes it easy to extract, edit, and evaluate XPath queries on any webpage. IMPORTANT: After installing this extension, you must reload any existing tabs or restart Chrome for the extension to work. Instructions: 1. Open a new tab and navigate to any webpage. 2. Hit Ctrl-Shift-X (or Command-Shift-X on OS X), or click the XPath Helper button in the toolbar, to open the XPath Helper console. 3. Hold down Shift as you mouse over elements on the page. The query box will continuously update to show the XPath query for the element below the mouse pointer, and the results box will show the results for the current query. 4. If desired, edit the XPath query directly in the console. The results box will immediately reflect your changes. 5. Repeat step (2) to close the console. If the console gets in your way, hold down Shift and then move your mouse over it; it will move to the opposite side of the page. One word of caution: When rendering HTML tables, Chrome inserts artificial <tbody> tags into the DOM, which will consequently show up in queries extracted by this extension.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值