网络爬虫Xpath开发工具的使用

        开发人员在编写网络爬虫程序时若遇到解析网页数据的问题,则需要花费大量的时间编
写与测试路径表达式,以确认是否可以解析出所需要的数据。为帮助开发人员在网页上直接
测试路径表达式是否正确,我们在这里推荐一款比较好用的 XPath 开发工具—— XPath Helper
        XPath Helper 是一款运行在 Chrome 浏览器上的插件,它支持在网页上单击元素生成路径
表达式,也支持对照网页源代码手动编写路径表达式。在使用 XPath Helper 进行测试之前,
我们需要先在 Chrome 浏览器上添加 XPath Helper 插件。下面为大家分别介绍安装与使用 XPath
Helper 插件

1.安装 XPath Helper 插件

        安装 XPath Helper 插件的方式比较简单。我们既可以通过 Chrome 网上应用店进行安装,
也可以通过下载到本地的 XPathHelper.crx 文件进行安装。在这里,我们以 XPathHelper.crx
件为例演示如何安装 XPath Helper 插件,具体步骤如下。
1 )在 Chrome 浏览器的右上角单击“ ”按钮,打开自定义及控制 Google Chrome 菜单,
在该菜单中单击“更多工具”→“扩展程序”进入扩展程序页面,如图 4-2 所示。
2 )将 XPathHelper.crx 文件拖入扩展程序页面,可以看到该页面中增加了扩展程序 XPath
Helper ,然后打开该扩展程序对应的开启按钮,此时扩展程序页面的右上角位置显示了 XPath
Helper 的图标 ,如图 4-3 所示。

 

3 )在图 4-3 中,单击 图标可以看到浏览器顶部弹出一个 XPath Helper 界面,具体如
4-4 所示。
        在图 4-4 中,界面左侧的编辑区域用于输入路径表达式,右侧区域用于展示该路径表达式
选取的结果,并且会将结果总数目(默认显示的值为 0 )显示到 RESULTS 后面的括号里。

2.使用 XPath Helper 插件

        下面以豆瓣网站上喜剧电影排行榜页面为例,为大家分步骤演示如何使用 XPath Helper
工具测试路径表达式,具体步骤如下。
        (1 )在浏览器中打开豆瓣电影首页,在该页面中单击“排行榜” “喜剧”进入喜剧电
影排行榜首页。喜剧电影排行榜首页中默认展示 20 部电影,当滚动条滑至页面底部时,会有
新的电影加载到页面中。在该页面顶部第一部电影名称“美丽人生”的上方单击鼠标右键,
打开快捷菜单,在该菜单中选择“检查”。页面底部弹出了 Elements 的面板,并定位到了电影
名称“美丽人生”对应元素源代码的位置,具体如图 4-5 所示。
        (2 )分析图 4-5 中元素的层次结构后,推断出最终的路径表达式可以为:
//div[@class='movie-info']/div/span/a/text()
        需要说明的是,路径表达式并不唯一,既可以是从根节点开始的绝对路径,也可以是从
任意节点开始的相对路径。
        (3 )打开 XPath Helper 工具,在左侧的编辑区域中输入上述路径表达式。此时右侧区域
中展示了路径表达式选取的结果及数目,如图 4-6 所示。

从图 4-6 中可以看出,根据左边的路径表达式,该页面展示了所有的电影名称。 

 

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/360514.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【Text2SQL 论文】MAGIC:为 Text2SQL 任务自动生成 self-correction guideline

论文:MAGIC: Generating Self-Correction Guideline for In-Context Text-to-SQL ⭐⭐⭐ 莱顿大学 & Microsoft, arXiv:2406.12692 一、论文速读 DIN-SQL 模型中使用了一个 self-correction 模块,他把 LLM 直接生成的 SQL 带上一些 guidelines 的 p…

【跟我学RISC-V】(三)openEuler特别篇

写在前面 这篇文章是跟我学RISC-V指令集的第三期,距离我上一次发文已经过去一个多月了,在这个月里我加入了oerv的实习项目组,并且还要准备期末考试,比较忙,所以更新频率不高,不过对于Linux kernel和RISC-V…

Opencv学习项目6——pyzbar

在之前我们学习了解码图片中的二维码,这次我们开启摄像头来解码视频中二维码 开启摄像头 # 打开摄像头 cap cv2.VideoCapture(0) cap.set(3, 640) # 设置摄像头画面宽度 cap.set(4, 480) # 设置摄像头画面高度 我使用的是笔记本上的摄像头来进行的,…

腰背肌筋膜炎的症状及治疗

腰背肌筋膜炎的症状 一、疼痛特点: 主要表现为腰背部弥漫性钝痛,尤以两侧腰肌及髂嵴上方更为明显。疼痛特点为晨起痛,日间轻,傍晚复重。长时间不活动或活动过度均可诱发疼痛,病程长,且因劳累及气候变化而发…

如何运用Midjourney探究新中式美学?

新中式美学最近真是越来越火了,把传统中式元素和现代设计结合起来,不仅看着舒服,还特别有文化韵味。 1. 研究和准备 首先,得先弄清楚什么是新中式美学。说白了,就是把传统中式元素和现代设计结合起来。你可以看看相关…

#03动态规划

要点: 动态规划方法与贪心法、分治法的异同; 动态规划方法的基本要素与求解步骤; 动态规划方法的应用。 难点: 如何根据问题的最优子结构性质构造构造动态规划方法中的递归公式或动态规划方程。 动态规划的基本思想 动态规…

算法与数据结构面试宝典——迭代与递归详解与示例(C#,C++)

文章目录 一、迭代与递归简介迭代递归 二、迭代与递归的应用场景迭代递归 三、迭代与递归的优缺点迭代优缺点递归优缺点 四、迭代与递归的示例及面试策略示例1:斐波那契数列(迭代实现)示例2:快速排序(递归实现&#xf…

大学网页制作作品1

作品须知:1.该网页作品预计分为5个页面(其中1个登录页面,1个首页主页面,3个分页面),如需要可自行删改增加页面。(总共约800行html,1200行css,100行js) 2.此网页源代码只用于学习和模…

R语言——数据与运算

练习基本运算&#xff1a; v <- c(2,4,6,9)t <- c(1,4,7,9)print(v>t)print(v < t)print(v t)print(v!t)print(v>t)print(v<t) v <- c(3,1,TRUE,23i)t <- c(4,1,FALSE,23i)print(v&t)print(v|t)print(!v)v <- c(3,0,TRUE,22i)t <- c(1,3,T…

【启明智显产品分享】Model4 工业级HMI芯片详解(三):高安全、防抄板

Model4 工业级HMI芯片详解系列专题&#xff08;三&#xff09;【高安全、防抄板】 随着物联网和智能设备的快速发展&#xff0c;设备安全认证的需求日益迫切。硬件安全认证和保护在确保设备和身份安全中发挥着不可替代的作用&#xff0c;需要与软件安全相结合&#xff0c;共同构…

[Python人工智能] 四十六.PyTorch入门 (1)环境搭建、神经网络普及和Torch基础知识

从本专栏开始,作者正式研究Python深度学习、神经网络及人工智能相关知识。前文讲解合如何利用keras和tensorflow构建基于注意力机制的CNN-BiLSTM-ATT-CRF模型,并实现中文实体识别研究。这篇文章将介绍PyTorch入门知识。前面我们的Python人工智能主要以TensorFlow和Keras为主,…

STM32--IAP程序升级实验

1. STM32程序升级方法 1.1 ST-link / J-link下载 将编译生成的hex文件使用ST-Link/J-Link工具直接下载进 Flash 即可。Keil中点击下载也能一键下载。下载后的代码会存放在Flash的起始地址0x0800 0000处。 简单补充一句&#xff0c;bin文件和hex文件的区别&#xff1a; bin文…

ARM day1练习 求1~100内的和

题目要求:用ARM汇编语言实现1~100之间之和&#xff08;5050 0x13BA&#xff09; .text 声明以下内容是文本段的内容 .global _start .global声明_start标签是一个全局标签_start:mov r1,#0x0 r1 summov r2,#0x1 r2 ifun: 加法函数cmp r2,#100 r2中的值和100作比较add…

Matlab基础篇:数据输入输出

前言 数据输入和输出是 Matlab 数据分析和处理的核心部分。良好的数据输入输出能够提高工作效率&#xff0c;并确保数据处理的准确性。本文将详细介绍 Matlab 数据输入输出的各种方法&#xff0c;包括导入和导出数据、数据处理和数据可视化。 一、导入数据 Matlab 提供了多种方…

Go自定义数据的序列化流程

&#x1f49d;&#x1f49d;&#x1f49d;欢迎莅临我的博客&#xff0c;很高兴能够在这里和您见面&#xff01;希望您在这里可以感受到一份轻松愉快的氛围&#xff0c;不仅可以获得有趣的内容和知识&#xff0c;也可以畅所欲言、分享您的想法和见解。 推荐:「stormsha的主页」…

【计算机毕业设计】167校园失物招领微信小程序

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

导出 S 参数扫描结果供 INTERCONNECT 使用

导出 S 参数扫描结果供 INTERCONNECT 使用 正文正文 有时候,对于 FDTD 无法直接进行仿真的大型仿真链路,我们需要使用 FDTD 针对单个小的模块进行仿真,再将得到的 S 参数结果导入到 INTERCONNECT 中使用,最终完成整个链路的仿真。通常完成 S 参数扫描后其状态如下图所示:…

QT拖放事件之八:通过全局剪切板中的接口QClipboard::mimeData()来获取MIME类型数据

1、演示效果 首先向剪切板写入数据,然后点击paste按钮进行从全局剪切板中 获取 MIME数据。。。 2、核心代码 void Widget::on_pasteBtn_clicked() {const QClipboard* clipBoard = QGuiApplication::clipboard()

非强化学习的对齐方法

在文章《LLM对齐“3H原则”》和《深入理解RLHF技术》中&#xff0c;我们介绍了大语言模型与人类对齐的“3H原则”&#xff0c;以及基于人类反馈的强化学习方法&#xff08;RLHF&#xff09;&#xff0c;本文将继续介绍另外一种非强化学习的对齐方法&#xff1a;直接偏好优化&am…

kafka--发布-订阅消息系统

1. Kafka概述 1. kafka是什么 kafka是分布式的、高并发的、基于发布/订阅模式的消息队列软件系统。 kafka中的重要组件 Producer&#xff1a;消息生产者&#xff0c;发布消息到Kafka集群的终端或服务Consume&#xff1a;消费者&#xff0c;从Kafka集群中消费消息的终端或服…