保定网站免费制作国外网页模板

news/2025/10/1 17:24:47/文章来源:
保定网站免费制作,国外网页模板,西宁企业网站建设公司,wordpress前端是什么原文链接https://cuiqingcai.com/2621.html 前言 前面我们介绍了 BeautifulSoup 的用法#xff0c;这个已经是非常强大的库了#xff0c;不过还有一些比较流行的解析库#xff0c;例如 lxml#xff0c;使用的是 Xpath 语法#xff0c;同样是效率比较高的解析方法。如果大…原文链接https://cuiqingcai.com/2621.html 前言 前面我们介绍了 BeautifulSoup 的用法这个已经是非常强大的库了不过还有一些比较流行的解析库例如 lxml使用的是 Xpath 语法同样是效率比较高的解析方法。如果大家对 BeautifulSoup 使用不太习惯的话可以尝试下 Xpath。 参考来源 lxml 用法源自 lxml python 官方文档更多内容请直接参阅官方文档本文对其进行翻译与整理。 lxml XPath 语法参考 w3school w3school 视频资源 如果你对 XPath 不熟悉的话可以看下这个视频资源 web 端功能自动化定位元素 安装 pip install lxml利用 pip 安装即可 XPath 语法 XPath 是一门在 XML 文档中查找信息的语言。XPath 可用来在 XML 文档中对元素和属性进行遍历。XPath 是 W3C XSLT 标准的主要元素并且 XQuery 和 XPointer 都构建于 XPath 表达之上。 节点关系 1父Parent 每个元素以及属性都有一个父。 在下面的例子中book 元素是 title、author、year 以及 price 元素的父 booktitleHarry Potter/titleauthorJ K. Rowling/authoryear2005/yearprice29.99/price /book2子Children 元素节点可有零个、一个或多个子。 在下面的例子中title、author、year 以及 price 元素都是 book 元素的子 booktitleHarry Potter/titleauthorJ K. Rowling/authoryear2005/yearprice29.99/price /book3同胞Sibling 拥有相同的父的节点 在下面的例子中title、author、year 以及 price 元素都是同胞 booktitleHarry Potter/titleauthorJ K. Rowling/authoryear2005/yearprice29.99/price /book4先辈Ancestor 某节点的父、父的父等等。 在下面的例子中title 元素的先辈是 book 元素和 bookstore 元素 bookstorebooktitleHarry Potter/titleauthorJ K. Rowling/authoryear2005/yearprice29.99/price /book## 5后代Descendant 某个节点的子子的子等等。 在下面的例子中bookstore 的后代是 book、title、author、year 以及 price 元素 bookstorebooktitleHarry Potter/titleauthorJ K. Rowling/authoryear2005/yearprice29.99/price /book/bookstore选取节点 XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式 表达式描述nodename选取此节点的所有子节点。/从根节点选取。//从匹配选择的当前节点选择文档中的节点而不考虑它们的位置。.选取当前节点。..选取当前节点的父节点。选取属性。 实例 在下面的表格中我们已列出了一些路径表达式以及表达式的结果 路径表达式结果bookstore选取 bookstore 元素的所有子节点。/bookstore选取根元素 bookstore。注释假如路径起始于正斜杠 (/)则此路径始终代表到某元素的绝对路径bookstore/book选取属于 bookstore 的子元素的所有 book 元素。//book选取所有 book 子元素而不管它们在文档中的位置。bookstore//book选择属于 bookstore 元素的后代的所有 book 元素而不管它们位于 bookstore 之下的什么位置。//lang选取名为 lang 的所有属性。 谓语Predicates 谓语用来查找某个特定的节点或者包含某个指定的值的节点。 谓语被嵌在方括号中。 实例 在下面的表格中我们列出了带有谓语的一些路径表达式以及表达式的结果 路径表达式结果/bookstore/book[1]选取属于 bookstore 子元素的第一个 book 元素。/bookstore/book[last()]选取属于 bookstore 子元素的最后一个 book 元素。/bookstore/book[last()-1]选取属于 bookstore 子元素的倒数第二个 book 元素。/bookstore/book[position() 3]选取最前面的两个属于 bookstore 元素的子元素的 book 元素。//title[lang]选取所有拥有名为 lang 的属性的 title 元素。//title[lang’eng’]选取所有 title 元素且这些元素拥有值为 eng 的 lang 属性。/bookstore/book[price35.00]选取 bookstore 元素的所有 book 元素且其中的 price 元素的值须大于 35.00。/bookstore/book[price35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素且其中的 price 元素的值须大于 35.00。 选取未知节点 XPath 通配符可用来选取未知的 XML 元素。 通配符描述*匹配任何元素节点。*匹配任何属性节点。node()匹配任何类型的节点。 实例 在下面的表格中我们列出了一些路径表达式以及这些表达式的结果 路径表达式结果/bookstore/*选取 bookstore 元素的所有子元素。//*选取文档中的所有元素。//title[*]选取所有带有属性的 title 元素。 选取若干路径 通过在路径表达式中使用 “|” 运算符您可以选取若干个路径。 实例 在下面的表格中我们列出了一些路径表达式以及这些表达式的结果 路径表达式结果//book/title | //book/price选取 book 元素的所有 title 和 price 元素。//title | //price选取文档中的所有 title 和 price 元素。/bookstore/book/title | //price选取属于 bookstore 元素的 book 元素的所有 title 元素以及文档中所有的 price 元素。 XPath 运算符 下面列出了可用在 XPath 表达式中的运算符 运算符描述实例返回值|计算两个节点集//book | //cd返回所有拥有 book 和 cd 元素的节点集加法6 410-减法6 - 42*乘法6 * 424div除法8 div 42等于price9.80如果 price 是 9.80则返回 true。如果 price 是 9.90则返回 false。!不等于price!9.80如果 price 是 9.90则返回 true。如果 price 是 9.80则返回 false。小于price9.80如果 price 是 9.00则返回 true。如果 price 是 9.90则返回 false。小于或等于price9.80如果 price 是 9.00则返回 true。如果 price 是 9.90则返回 false。大于price9.80如果 price 是 9.90则返回 true。如果 price 是 9.80则返回 false。大于或等于price9.80如果 price 是 9.90则返回 true。如果 price 是 9.70则返回 false。or或price9.80 or price9.70如果 price 是 9.80则返回 true。如果 price 是 9.50则返回 false。and与price9.00 and price9.90如果 price 是 9.80则返回 true。如果 price 是 8.50则返回 false。mod计算除法的余数5 mod 21 lxml 用法 初步使用 首先我们利用它来解析 HTML 代码先来一个小例子来感受一下它的基本用法。 from lxml import etree text divulli classitem-0a hreflink1.htmlfirst item/a/lili classitem-1a hreflink2.htmlsecond item/a/lili classitem-inactivea hreflink3.htmlthird item/a/lili classitem-1a hreflink4.htmlfourth item/a/lili classitem-0a hreflink5.htmlfifth item/a/ul/divhtml etree.HTML(text) result etree.tostring(html) print(result)首先我们使用 lxml 的 etree 库然后利用 etree.HTML 初始化然后我们将其打印出来。 其中这里体现了 lxml 的一个非常实用的功能就是自动修正 html 代码大家应该注意到了最后一个 li 标签其实我把尾标签删掉了是不闭合的。不过lxml 因为继承了 libxml2 的特性具有自动修正 HTML 代码的功能。 所以输出结果是这样的 htmlbody divulli classitem-0a hreflink1.htmlfirst item/a/lili classitem-1a hreflink2.htmlsecond item/a/lili classitem-inactivea hreflink3.htmlthird item/a/lili classitem-1a hreflink4.htmlfourth item/a/lili classitem-0a hreflink5.htmlfifth item/a/li /ul/div/body/html不仅补全了 li 标签还添加了 bodyhtml 标签。 文件读取 除了直接读取字符串还支持从文件读取内容。比如我们新建一个文件叫做 hello.html内容为 divulli classitem-0a hreflink1.htmlfirst item/a/lili classitem-1a hreflink2.htmlsecond item/a/lili classitem-inactivea hreflink3.htmlspan classboldthird item/span/a/lili classitem-1a hreflink4.htmlfourth item/a/lili classitem-0a hreflink5.htmlfifth item/a/li/ul/div利用 parse 方法来读取文件。 from lxml import etree html etree.parse(hello.html) result etree.tostring(html, pretty_printTrue) print(result)同样可以得到相同的结果。 XPath 实例测试 依然以上一段程序为例 1获取所有的标签 from lxml import etree html etree.parse(hello.html) print type(html) result html.xpath(//li) print result print len(result) print type(result) print type(result[0]) 运行结果: type lxml.etree._Element [Element li at 0x25a5f48, Element li at 0x25a5f08, Element li at 0x25a50c8, Element li at 0x259f788, Element li at 0x259f148] 5 type list type lxml.etree._Element可见etree.parse 的类型是 ElementTree通过调用 xpath 以后得到了一个列表包含了 5 个元素每个元素都是 Element 类型 2获取标签的所有 class result html.xpath(//li/class) print result[item-0, item-1, item-inactive, item-1, item-0]3获取标签下 href 为 link1.html 的 标签 result html.xpath(//li/a[hreflink1.html]) print result[Element a at 0x2615f48]4获取标签下的所有标签 注意这么写是不对的 result html.xpath(//li/span)因为 / 是用来获取子元素的而 并不是标签下的所有元素所以要用双斜杠 result html.xpath(//li//span) print result[Element span at 0x25a5f08]5获取标签下的所有 class属性值不包括标签 result html.xpath(//li/a//class) print result[blod]6获取最后一个li标签的子a标签的href属性值 result html.xpath(//li[last()]/a/href) print result[link5.html]7获取倒数第二个元素的子标签内容 result html.xpath(//li[last()-1]/a) print result[0].textfourth item8获取 class 为 bold 的标签名 result html.xpath(//*[classbold]) print result[0].tagspan通过以上实例的练习相信大家对 XPath 的基本用法有了基本的了解。也可以利用 text 方法来获取元素的内容。 大家多加练习 结语 XPath 是一个非常好用的解析方法同时也作为爬虫学习的基础在后面的 selenium 以及 scrapy 框架中都会涉及到这部分知识希望大家可以把它的语法掌握清楚为后面的深入研究做好铺垫。

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

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

相关文章

完整教程:MYSQL —— 约束和多表查询

完整教程:MYSQL —— 约束和多表查询pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Mona…

排序算法汇总,堆排序,归并排序,冒泡排序,插入排序 - 详解

排序算法汇总,堆排序,归并排序,冒泡排序,插入排序 - 详解pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Cons…

AI元人文:于价值表征困境中试探

AI元人文:穿越价值表征的迷雾 ——于价值表征困境中试探 我们正站在一个历史性的门槛上。人工智能,这具硅基的“无限之器”,已从遥远的工具转变为近身的伙伴,开始叩问人类文明最核心的堡垒——我们的价值体系。然而…

住房建设建设部网站北京建筑工程公司大全

目录 表示多项式 多项式的计算 此示例说明如何在 MATLAB 中将多项式表示为向量以及根据相关点计算多项式。 表示多项式 MATLAB 将多项式表示为行向量,其中包含按降幂排序的系数。例如,三元素向量 p [p2 p1 p0]; 表示多项式: 创建一个向量…

解决ubuntu因自动挂起导致电脑卡死

说明:当电脑长时间未操作,或未关机合上盖子时会触发系统的自动挂起,导致系统卡死无法操作 解决方案 1.​​打开终端​​,输入sudo nano /etc/systemd/logind.conf 2.电脑重启即可

2025板材厂家 TOP 企业品牌推荐排行榜,环保 / 密度 / 净化 / 零醛添加 / 装修 / 生态板 / 指接板 / 直拼板 / PET 实木板材公司推荐!

在当下的建筑与家居装饰领域,板材作为基础且关键的材料,其品质优劣直接关乎到最终呈现效果与使用者的生活体验。随着消费者对居住环境要求的不断提升,对板材的环保性、耐用性、美观度等方面也提出了更严苛的标准。然…

delphi10.3下PDFium5.8安装与使用

delphi10.3下PDFium5.8安装与使用通过网盘分享的文件:Winsoft_PDFium_Component_Suite v5.8.zip链接: https://pan.baidu.com/s/12NSTe_qrZvRAGqt7Zhr0aw?pwd=cas4 提取码: cas4 D:\BaiduNetdiskDownload\Winsoft_PD…

2线性规划模型建模实战

线性规划模型建模实战(投资组合优化案例)笔记 一、案例背景与目标 1.1 投资场景设定市场存在 n种可投资资产Sᵢ(i=1,2,...,n),需用大额资金M进行一期投资; 资产核心参数(示例):资产Sᵢ 平均收益率rᵢ 风险损失…

网络技术:基本结构与协议

铺垫网络技术基本原理网络(Network)是 20 世纪的一个重要发明,其使得计算机可以互相连接,提供了无限的可能性。 概念 & 术语 有必要先理清一些概念。图自:https://blog.csdn.net/fiberroad/article/details/1…

Excel工作表自动追加工具项目总结报告 - 教程

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

《电路基础》第三章学习笔记

《电路基础》第三章学习笔记任何伟大的事情都不是一蹴而就的,做任何伟大的事情都需要时间、耐心和毅力I’m back,完成到任务8了,回来继续学习电路! 这一章是本书中最为重要的一章,应给予足够的重视。 主要介绍:1…

移植Linux(No MMU)到ESP32-S3

主要原理是利用mini-rv32ima,在EPS32上运行一个riscv32模拟器,在模拟器里运行无需MMU版的主线Linux 6.X 这位大佬已经把mini-rv32ima移植到esp32-s3的PlatformIO里的Arduino平台上,代码看着好像很简单,就几个脚本:…

关于ws连接coinex偶尔会出现几分钟不更新数据的问题 - Charlie

一、环境 1、语言:go 二、服务概况三、现象 lark告警群中偶尔会出现coinex的btc和eth同时告警,但是他们的最后一次告警时间不相同,代码的告警逻辑是:每隔30s定时从数据库中查询redis中btc和eth的数据updateTime字段…

dz网站后台好的网页制作公司有哪些

智慧公安作为公安信息化开展到高级阶段的一种警务形态,“智慧公安”主要采用物联网、云计算、无线通讯、智能动态感知分析等新一代信息技术,将公安工作IT根底设备与物理设备、人际环境等高度交融,以提供智能化公安决策与效劳。智慧警务大数据云平台开发情报研判系统…

网站建设目标和功能介绍潍坊网站建设方案

华为北向网管NCE开发教程(1)闭坑选接口协议 华为北向网管NCE开发教程(2)REST接口开发 华为北向网管NCE开发教程(3)CORBA协议开发 本文一是记录自己开发华为北向网管遇到的坑,二是给需要的人&…

购物网站的前台功能网页设计教程书籍推荐

安装 VirtualBox 地址:https://www.virtualbox.org/wiki/Downloads 版本: 6.1和7.0+版本都可以 安装: windows上安装需要admin权限,右键菜单选中 “Run as administrator” 安装 CentOS 6.10 地址:https://vault.centos.org/6.10/isos/x86_64/ 版本: 如果不需要GUI,选择…

【C#】以 BlockingCollection 为核心的多相机 YOLO 检测任务处理框架 - 指南

【C#】以 BlockingCollection 为核心的多相机 YOLO 检测任务处理框架 - 指南pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-fami…

上手 cpp-httplib:轻量级 C++ HTTP 库的安装与实战指南 - 教程

上手 cpp-httplib:轻量级 C++ HTTP 库的安装与实战指南 - 教程2025-10-01 17:04 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !impo…

CAD安装Error 1402权限问题解决

问题描述 由于历史版本卸载不干净,在安装CAD过程中报错 1402,具体如下: Error 1402 Could not open key:UNKNOWN\Components\BCC6186334A64285641057ABAF4A6…Verify that you have sufficient access to that key,…

题解:P9868 [NOIP2023] 词典

原题传送门。 显然,如果我们想要把一个字符串字典序尽量小,我们把这个字符串中的字符从小到大排序就行了;反过来就是把字符串中的字符从大到小排序就行了。 我们可以暴力地对于每个字符串排序,然后对于每一个字符串…