当前位置: 首页 > news >正文

flash网站建设技术...小说网站模板建站

flash网站建设技术...,小说网站模板建站,樱花动漫imomoe官网入口,自己做软件的应用用 Python 解析 HTML 页面 在网络爬取的过程中#xff0c;我们通常需要对所爬取的页面进行解析#xff0c;从中提取我们需要的数据。网页的结构通常是由 HTML 标签所组成的#xff0c;通过对这些标签的解析#xff0c;可以得到网页中所包含的有用信息。在 Python 中#…用 Python 解析 HTML 页面 在网络爬取的过程中我们通常需要对所爬取的页面进行解析从中提取我们需要的数据。网页的结构通常是由 HTML 标签所组成的通过对这些标签的解析可以得到网页中所包含的有用信息。在 Python 中有三种常见的 HTML 解析方式正则表达式解析、XPath 解析和 CSS 选择器解析。本文将为大家介绍这三种解析方式的基本使用方法。 HTML 页面的结构 在讲解 HTML 解析方式之前我们需要先了解一下 HTML 页面的基本结构。当我们在浏览器中打开一个网站并通过鼠标右键菜单选择“显示网页源代码”菜单项时就可以看到网页对应的 HTML 代码。HTML 代码通常由标签、属性和文本组成。标签用于承载页面要显示的内容属性用于补充标签的信息而文本则是标签所显示的内容。下面是一个简单的 HTML 页面代码结构示例 !DOCTYPE html htmlhead!-- head 标签中的内容不会在浏览器窗口中显示 --title这是页面标题/title/headbody!-- body 标签中的内容会在浏览器窗口中显示 --h1这是一级标题/h1p这是一段文本/p/body /html 在这个 HTML 页面代码示例中!DOCTYPE html是文档类型声明html标签是整个页面的根标签head和body是html标签的子标签放在body标签下的内容会显示在浏览器窗口中这部分内容是网页的主体放在head标签下的内容不会在浏览器窗口中显示但是却包含了页面重要的元信息通常称之为网页的头部。HTML 页面大致的代码结构如下所示 !DOCTYPE html htmlhead!-- 页面的元信息如字符编码、标题、关键字、媒体查询等 --/headbody!-- 页面的主体显示在浏览器窗口中的内容 --/body /html 在 HTML 页面中标签、层叠样式表CSS和 JavaScript 是构成页面的三要素。标签用来承载页面要显示的内容CSS 负责对页面的渲染而 JavaScript 用来控制页面的交互式行为。要实现 HTML 页面的解析可以使用 XPath 的语法它原本是 XML 的一种查询语法可以根据 HTML 标签的层次结构提取标签中的内容或标签属性此外也可以使用 CSS 选择器来定位页面元素就跟用 CSS 渲染页面元素是同样的道理。 XPath 解析 XPath 是在 XMLeXtensible Markup Language文档中查找信息的一种语法XML 跟 HTML 类似也是一种用标签承载数据的标签语言不同之处在于 XML 的标签是可扩展的可以自定义的而且 XML 对语法有更严格的要求。XPath 使用路径表达式来选取 XML 文档中的节点或者节点集这里所说的节点包括元素、属性、文本、命名空间、处理指令、注释、根节点等。 XPath 的路径表达式是一种类似于文件路径的语法可以通过“/”和“//”来选取节点。单斜杠“/”表示选取根节点双斜杠“//”表示选取任意位置的节点。例如“/bookstore/book”表示选取根节点 bookstore 下的所有 book 子节点“//title”表示选取任意位置的 title 节点。 XPath 还可以使用谓语Predicate来过滤节点。谓语是被嵌在方括号中的表达式它可以是一个数字、一个比较运算符或一个函数调用。例如“/bookstore/book[1]”表示选取 bookstore 的第一个子节点 book“//book[lang]”表示选取所有具有 lang 属性的 book 节点。 XPath 的函数包括字符串、数学、逻辑、节点、序列等函数这些函数可以用于选取节点、计算值、转换数据类型等操作。例如“string-length(string)”函数可以返回字符串的长度“count(node-set)”函数可以返回节点集中节点的个数。 下面我们通过一个例子来说明如何使用 XPath 对页面进行解析。假设我们有如下的 XML 文件 ?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。 CSS 选择器解析 CSS 选择器是一种基于 HTML 标签的属性和关系来定位元素的方法。它可以根据 HTML 标签的层次结构、类名、id 等属性来定位元素。在 Python 中我们可以使用 BeautifulSoup 库来进行 CSS 选择器解析。 下面我们通过一个例子来说明如何使用 CSS 选择器对页面进行解析。假设我们有如下的 HTML 代码 !DOCTYPE html html headmeta charsetutf-8title这是页面标题/title /head bodydiv classcontenth1这是一级标题/h1p这是一段文本/p/divdiv classfooterp版权所有 © 2021/p/div /body /html 我们可以使用如下所示的 CSS 选择器语法来选取页面元素。 选择器结果div.content选取 class 为 content 的 div 元素。h1选取所有的 h1 元素。div.footer p选取 class 为 footer 的 div 元素下的所有 p 元素。[href]选取所有具有 href 属性的元素。 正则表达式解析 正则表达式是一种用来匹配、查找和替换文本的工具它可以用于对 HTML 页面进行解析。在 Python 中我们可以使用 re 模块来进行正则表达式解析。 下面我们通过一个例子来说明如何使用正则表达式对页面进行解析。假设我们有如下的 HTML 代码 !DOCTYPE html html headmeta charsetutf-8title这是页面标题/title /head bodydiv classcontenth1这是一级标题/h1p这是一段文本/p/divdiv classfooterp版权所有 © 2021/p/div /body /html 我们可以使用如下所示的正则表达式来选取页面元素。 import rehtml !DOCTYPE html html headmeta charsetutf-8title这是页面标题/title /head bodydiv classcontenth1这是一级标题/h1p这是一段文本/p/divdiv classfooterp版权所有 © 2021/p/div /body /html pattern re.compile(rdiv classcontent.*?h1(.*?)/h1.*?p(.*?)/p.*?/div, re.S) match re.search(pattern, html) if match:title match.group(1)text match.group(2)print(title)print(text) 以上代码中我们使用 re 模块的 compile 方法来编译正则表达式然后使用 search 方法来匹配 HTML 代码。在正则表达式中“.*?”表示非贪婪匹配也就是匹配到第一个符合条件的标签就停止匹配而“re.S”表示让“.”可以匹配包括换行符在内的任意字符。最后我们使用 group 方法来获取匹配的结果。 总结 本文介绍了 Python 中常用的三种 HTML 解析方式XPath 解析、CSS 选择器解析和正则表达式解析。在具体的应用过程中我们可以根据需要选择不同的解析方式。XPath 解析适用于对 HTML 页面的层次结构进行解析能够比较方便地定位页面元素CSS 选择器解析适用于对 HTML 页面的类名、id 等属性进行解析可以快速定位元素正则表达式解析适用于对 HTML 页面的标签和文本进行解析可以灵活地处理页面元素。希望本文能够对大家进行 HTML 解析方面的学习和实践有所帮助。
http://www.hkea.cn/news/14369256/

相关文章:

  • 专业做简历的网站国外可以做非法网站吗
  • 中国贸易网是什么网站自定义网址生成器
  • 动完网站设计网站用jsp做的网站的代码
  • 佛山外贸网站建设流程有什么网站可以做中间人的
  • 网站开发的体会大数据开发工程师
  • 做全景图二维码的网站seo发帖软件
  • 京东网站建设有哪些优点安宁市建设厅网站
  • 广州 骏域网站建设做五金建材市场的网站
  • 中山外贸网站建设价格重庆市万州建设工程信息网
  • 网站重要三要素学校网站建设机构
  • 电子商务网站建设与管理的总结页面设计的线条
  • 智能建站制作网站导航界面
  • 网站关键词没排名怎么办wordpress agoda
  • 手机网站建设价格明细表wordpress 导入 附件
  • dede宠物网站模板有哪些中文域名网站有哪些
  • 网站推广优化广西柳州科技学校网站建设
  • 自适应微网站开发免费wordpress虚拟主机
  • 上海医疗网站备案表wordpress 页面别名
  • 开发网站大概要多少钱wordpress图文直播插件
  • 龙岗爱联有学网站建设毕业设计代做网站推荐
  • 关于网站建设请示自己建设网站怎么被百度收入
  • 做网站号码湖南软装设计公司
  • 青岛做网站的费用网站注册主机
  • 网站备案名称规定wordpress泛域名插件
  • 企业网站建设前期准备百度百科优化排名
  • 网站设计公司天津zencart 网站老是跳转到原地址
  • 已申请域名怎么做网站百度竞价排名广告
  • 网站开发的实施方案商城网站建设那家好
  • 网站开发 托管合同重庆农产品价格信息网
  • 做网站哪个软件好用社区微网站建设方案ppt模板