凡科可以建设多个网站吗上海手机网站建设电话咨询

news/2025/9/27 10:52:49/文章来源:
凡科可以建设多个网站吗,上海手机网站建设电话咨询,成都网络公司服务内容,住房城乡建设部举报网站用Python解析HTML页面 文章目录 用Python解析HTML页面HTML 页面的结构XPath 解析CSS 选择器解析简单的总结 在前面的课程中#xff0c;我们讲到了使用 request三方库获取网络资源#xff0c;还介绍了一些前端的基础知识。接下来#xff0c;我们继续探索如何解析 HTML 代码我们讲到了使用 request三方库获取网络资源还介绍了一些前端的基础知识。接下来我们继续探索如何解析 HTML 代码从页面中提取出有用的信息。之前我们尝试过用正则表达式的捕获组操作提取页面内容但是写出一个正确的正则表达式也是一件让人头疼的事情。为了解决这个问题我们得先深入的了解一下 HTML 页面的结构并在此基础上研究另外的解析页面的方法。 HTML 页面的结构 我们在浏览器中打开任意一个网站然后通过鼠标右键菜单选择“显示网页源代码”菜单项就可以看到网页对应的 HTML 代码。 代码的第1行是文档类型声明第2行的html标签是整个页面根标签的开始标签最后一行是根标签的结束标签/html。html标签下面有两个子标签head和body放在body标签下的内容会显示在浏览器窗口中这部分内容是网页的主体放在head标签下的内容不会显示在浏览器窗口中但是却包含了页面重要的元信息通常称之为网页的头部。HTML 页面大致的代码结构如下所示。 !doctype html htmlhead!-- 页面的元信息如字符编码、标题、关键字、媒体查询等 --/headbody!-- 页面的主体显示在浏览器窗口中的内容 --/body /html标签、层叠样式表CSS、JavaScript 是构成 HTML 页面的三要素其中标签用来承载页面要显示的内容CSS 负责对页面的渲染而 JavaScript 用来控制页面的交互式行为。要实现 HTML 页面的解析可以使用 XPath 的语法它原本是 XML 的一种查询语法可以根据 HTML 标签的层次结构提取标签中的内容或标签属性此外也可以使用 CSS 选择器来定位页面元素就跟用 CSS 渲染页面元素是同样的道理。 XPath 解析 XPath 是在 XMLeXtensible Markup Language文档中查找信息的一种语法XML 跟 HTML 类似也是一种用标签承载数据的标签语言不同之处在于 XML 的标签是可扩展的可以自定义的而且 XML 对语法有更严格的要求。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集这里所说的节点包括元素、属性、文本、命名空间、处理指令、注释、根节点等。下面我们通过一个例子来说明如何使用 XPath 对页面进行解析。 ?xml version1.0 encodingUTF-8? bookstorebooktitle langengHarry Potter/titleprice29.99/price/bookbooktitle langzhLearning XML/titleprice39.95/price/book /bookstore对于上面的 XML 文件我们可以用如下所示的 XPath 语法获取文档中的节点。 路径表达式结果/bookstore选取根元素 bookstore。注意假如路径起始于正斜杠( / )则此路径始终代表到某元素的绝对路径//book选取所有 book 子元素而不管它们在文档中的位置。//lang选取名为 lang 的所有属性。/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[langeng]选取所有 title 元素且这些元素拥有值为 eng 的 lang 属性。/bookstore/book[price35.00]选取 bookstore 元素的所有 book 元素且其中的 price 元素的值须大于 35.00。/bookstore/book[price35.00]/title选取 bookstore 元素中的 book 元素的所有 title 元素且其中的 price 元素的值须大于 35.00。 XPath还支持通配符用法如下所示。 路径表达式结果/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 语法可以在浏览器的开发者工具中按照如下所示的方法查看元素的 XPath 语法下图是在 Chrome 浏览器的开发者工具中查看豆瓣网电影详情信息中影片标题的 XPath 语法。 实现 XPath 解析需要三方库lxml 的支持可以使用下面的命令安装lxml。 pip install lxml下面我们用 XPath 解析方式改写之前获取豆瓣电影 Top250的代码如下所示。 from lxml import etree import requestsfor page in range(1, 11):resp requests.get(urlfhttps://movie.douban.com/top250?start{(page - 1) * 25},headers{User-Agent: BaiduSpider})tree etree.HTML(resp.text)# 通过XPath语法从页面中提取电影标题title_spans tree.xpath(//*[idcontent]/div/div[1]/ol/li/div/div[2]/div[1]/a/span[1])# 通过XPath语法从页面中提取电影评分rank_spans tree.xpath(//*[idcontent]/div/div[1]/ol/li[1]/div/div[2]/div[2]/div/span[2])for title_span, rank_span in zip(title_spans, rank_spans):print(title_span.text, rank_span.text)CSS 选择器解析 对于熟悉 CSS 选择器和 JavaScript 的开发者来说通过 CSS 选择器获取页面元素可能是更为简单的选择因为浏览器中运行的 JavaScript 本身就可以document对象的querySelector()和querySelectorAll()方法基于 CSS 选择器获取页面元素。在 Python 中我们可以利用三方库beautifulsoup4或pyquery来做同样的事情。Beautiful Soup 可以用来解析 HTML 和 XML 文档修复含有未闭合标签等错误的文档通过为待解析的页面在内存中创建一棵树结构实现对从页面中提取数据操作的封装。可以用下面的命令来安装 Beautiful Soup。 pip install beautifulsoup4下面是使用bs4改写的获取豆瓣电影Top250电影名称的代码。 import bs4 import requestsfor page in range(1, 11):resp requests.get(urlfhttps://movie.douban.com/top250?start{(page - 1) * 25},headers{User-Agent: BaiduSpider})# 创建BeautifulSoup对象soup bs4.BeautifulSoup(resp.text, lxml)# 通过CSS选择器从页面中提取包含电影标题的span标签title_spans soup.select(div.info div.hd a span:nth-child(1))# 通过CSS选择器从页面中提取包含电影评分的span标签rank_spans soup.select(div.info div.bd div span.rating_num)for title_span, rank_span in zip(title_spans, rank_spans):print(title_span.text, rank_span.text)关于 BeautifulSoup 更多的知识可以参考它的官方文档。 简单的总结 下面我们对三种解析方式做一个简单比较。 解析方式对应的模块速度使用难度正则表达式解析re快困难XPath 解析lxml快一般CSS 选择器解析bs4或pyquery不确定简单

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

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

相关文章

网站建设选用平台分析极速蜂app拉新加盟

阿里云服务器是阿里云推出的一种云核算产品,它能够帮助企业和个人快速建立、扩展和管理网络服务。可是,有时候在运用阿里云服务器时,或许会遇到无法装置程序的问题。本文将具体介绍如何处理这个问题。 阿里云服务器无法装置程序或许是由多种原…

版权申请网站宾馆酒店网站建设方案

小伙伴们好久不见,今天我们来聊聊中国 AZURE 的日志分析告警。为什么是中国 AZURE,目前中国 AZURE 的 Monitor 服务和运维相关周围服务和 Global 是有所不同的,所以有些功能和设计不能复制和套用全球版 AZURE 的架构。我们先看一下中国 AZURE…

深入解析:cocos 添加背景,帧动画,贴图

深入解析:cocos 添加背景,帧动画,贴图2025-09-27 10:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block…

B站油管抖音一键笔记

在最近,我有一个需求就是需要对视频内容进行一个总结,做成一个笔记,但是又不想自己手动去写,于是我找到了一个项目 BiliNote,BiliNote 是一个开源的 AI 视频笔记助手,支持通过哔哩哔哩、YouTube、抖音等视频链接…

网站安装出现dir更改wordpress地址

集成swagger2的时候swagger-ui.html页面的v2/api-docs接口报404 尝试网上说的权限、包版本不一致、资源路径映射问题,发现都没有问题。 单独访问v2/api-docs接口的时候报 Swagger2Controller Unable to find specification for group 查看相关代码: …

成熟网站开发联系电话陕西网

简介:OpenKruise 是针对 Kubernetes 的增强能力套件,聚焦于云原生应用的部署、升级、运维、稳定性防护等领域。 云原生应用自动化管理套件、CNCF Sandbox 项目 -- OpenKruise,近期发布了 v1.0 大版本。 OpenKruise[1] 是针对 Kubernetes 的…

网站设计公司官网如何设计购物网站

Java流程控制语句有三种: 顺序结构、分支结构和循环结构。 顺序结构: 顺序结构语句是Java程序默认的执行流程,按照代码的先后顺序,从上到下依次执行。 原文链接: Java流程控制控制语句 - 红客网络编程与渗透技术 示例…

介绍自己

大家好!我是一个数据科学与大数据技术专业的大三学生。在日常生活中我有着许多的兴趣爱好打羽毛球、听音乐、做手工。技能树与专业规划 当前技术能力 编程基础:稍微掌握Python数据处理(Pandas、NumPy) 数据库技能:…

pycharm更换国内源

1、找到pip.ini2、记事本修改 [global] timeout = 6000 index-url = https://pypi.tuna.tsinghua.edu.cn/simple trusted-host = https://pypi.tuna.tsinghua.edu.cn

基于Python+Vue开发的反诈视频宣传管理系统源码+运行步骤

项目简介该项目是基于Python+Vue开发的反诈视频宣传管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习…

MySQL中的空间碎片率计算分析 - 指南

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

网站开发财务预算企业手机网站建设流程

以下部门功能在lucene5以上版本可能有的API所有改变 目录1.简介 2.了解索引操作 2.1倒排索引 2.2字段类型 2.3细分 2.4文件编号 2.5搜索索引 3.创建索引 4.基本索引操作 4.1核心索引类 4.2将数据添加到索引 5.文件和领域 5.1文件 5.2领域 5.3在Lucene中增强文档 1.简介 该索引是…

为什么网站目录不收录seowhy问答

一、初识 1.1 基础 1.1.1 语言速成课 1.1.1.1 变量 ​ 变量是存储值的容器。首先用let关键字声明一个变量,后面跟着你给变量的名字 ​ 变量命名区分大小写 ​ 分号在JavaScript中是用来分隔语句的,但是如果语句后面有一个换行符(或者在{block}中只…

网站推广营销潞城建设局网站

题目要求:判断一棵树是否为平衡二叉树 思路:递归地比较左右子树,只要有一棵子树不满足条件就说明这棵树不是平衡二叉树。本题采用迭代法较为复杂。 leetcode实战: 代码实现: 递归: 迭代:

商城网站都有什么功能设计交易平台哪个好

SoMeLVLM: A Large Vision Language Model for Social Media Processing 论文地址: https://arxiv.org/abs/2402.13022https://arxiv.org/abs/2402.13022发表在ACL 2024 1.概述 在线社交媒体平台涌现出海量的文本与视觉内容,深刻揭示了人们如何交流、互动以及自我表达。随着通…

发帖百度秒收录网站分享中太建设集团股份有限公司官方网站

引言 前端开发中,数据的复制是一个常见的操作。尤其是在处理对象和数组时,我们需要考虑的是一个浅拷贝还是深拷贝。那么,什么是深拷贝和浅拷贝?它们在前端开发中有什么作用?如何实现这两种拷贝?这是我们在…

对于Hash冲突的处理

对于Hash冲突的处理求最小冲突质数 for(int i = 100000; ; ++ i){bool flag = true;for(int j = 2; j * j <= i; ++ j)if(i % j == 0) {flag = false;break;}if(flag) {cout << i << endl;break;}

完整教程:事件驱动与CDS:基于FHIR R5 Subscriptions与Bulk Data的再考察(上)

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

关于SeaTunnel 达梦数据迁移无法自动建表的问题

关于SeaTunnel 达梦数据迁移无法自动建表的问题Posted on 2025-09-27 10:33 漂泊雪狼 阅读(0) 评论(0) 收藏 举报当sink库为达梦库时,schema_save_mode 设置为"CREATE_SCHEMA_WHEN_NOT_EXIST",希望它…