html-parsing 相关问题

HTML解析是消耗HTML文档的序列化并产生可以以编程方式工作的表示的过程 - 例如,为了从中提取数据。 HTML规范定义了用于解析HTML的标准算法,该算法在所有主流浏览器中实现。

如何使用 Node.js 解析 HTML 页面

我需要解析(服务器端)大量的 HTML 页面。 我们都同意正则表达式不是解决问题的方法。 在我看来,javascript 是解析 HTML 页面的本机方式,但假设...

回答 7 投票 0

beautifulsoup:在bs4.element.ResultSet对象或列表上find_all?

我将 find_all 应用于 beautifulsoup 对象,并找到一些东西,它是 bs4.element.ResultSet 对象或列表。 我想在那里进一步执行 find_all 操作,但在 bs4.element.Res 上不允许这样做...

回答 2 投票 0

用 JS 解析 HTML 字符串

我想解析一个包含 HTML 文本的字符串。我想用 JavaScript 来做。 我尝试了纯 JavaScript HTML 解析器库,但它似乎解析我当前页面的 HTML,而不是来自

回答 16 投票 0

如何使用 C# 从以下节点 json 构建 html

{ “文档”: { “对象”:“文档”, “数据”: { “架构版本”:6 }, “节点”:[ { “物体”...

回答 1 投票 0

如何获取下载网页中Html元素的“innerHTML”? [已关闭]

我正在尝试创建一个 Google Apps 脚本函数,该函数返回网页 ID 元素的内部 HTML。 使用 Web 浏览器的 JavaScript 控制台,可以执行以下操作: document.getElementB...

回答 1 投票 0

使用 Google Apps 脚本获取 ID 的innerHTML

我正在尝试创建一个 Google Apps 脚本函数,该函数返回网页 ID 元素的内部 HTML。 使用 Web 浏览器的 JavaScript 控制台,可以执行以下操作: document.getElementB...

回答 1 投票 0

XSLT 字符串到节点的转换和禁用输出转义

我正在将 Access 数据库导出为 XML,然后需要转换 XML 以为 Framemaker 创建出版物准备数据。在此过程中,我需要在文本中创建交叉引用...

回答 1 投票 0

使用 Python 替换 HTML 文档中的 HTML 标签,而不修改文档的其余部分

我正在制作一个简单的Python + HTML 网站(作为我学习的一部分)。网站菜单如下所示: 首页 我正在制作一个简单的Python + HTML 网站(作为我学习的一部分)。网站菜单如下所示: <ul> <li><a href="/">Home</a></li> <li><a href="/products.html">Products</a></li> <li><a href="/about.html">About</a></li> </ul> 该块存储在变量中,当生成任何页面时,其他内容会连接到该变量,并将生成的页面传输到客户端(浏览器)。 我试图将当前打开的菜单项变为粗体(添加 B 标签)并删除链接(删除 A 标签)。例如,如果打开产品页面,菜单应更改为: <ul> <li><a href="/">Home</a></li> <li><b>Products</b></li> <li><a href="/about.html">About</a></li> </ul> 我尝试了HTMLParser和BeautifulSoup,但我不明白如何只更改HTML的某些部分,而不破坏整个HTML。 我建议使用BeautifulSoup。让我们创建一个 Python 函数。 def get_menu_html(current_page_name): # each <li> tag has its own ID html = """ <ul> <li id="menu_home"><a href="/">Home</a></li> <li id="menu_products"><a href="/products.html">Products</a></li> <li id="menu_about"><a href="/about.html">About</a></li> </ul> """ soup = BeautifulSoup(html, "html.parser") # find the tag <li> by ID tag = soup.find(id="menu_" + current_page_name) # create a new tag <b> with the same text as in <li> newtag = soup.new_tag("b") newtag.string = tag.get_text() # replace <a> inside <li> to <b> # so <li><a>...</a></li> turns into <li><b>...</b></li> tag.find("a").replace_with(newtag) # return prettified HTML return soup.prettify() # try it print(get_menu_html("home")) print(get_menu_html("products")) print(get_menu_html("about"))

回答 1 投票 0

如何从 Java 验证 HTML?

从 Java 验证 HTML 的快速而简单的方法是什么?我正在寻找一个开源/PD 类(或一组类)来描述 100 多个 HTML 标签的各种属性,例如: 难道是……

回答 2 投票 0

如何在服务器端使用node-html-parser替换img src值?

我有html代码,我想更改上的src值 我有html代码,我想更改服务器端src标签上的<img值。我正在使用 node-html-parser 库。 这是我的代码: const root = HTMLParser.parse(templateContent); let base64Image = root.querySelector('img').rawAttributes.src; console.log('here'); root.getElementsByTagName('img')[0].rawAttributes.src.set_content('src="cid:image"'); console.log(root.toString()) process.exit() ... 这是我的 html 代码: <p><img src="data:image/jpeg;base64,/9j/4AAQSkZJRgABAQIAJgAmAAD/2wBDAAMCAgMCAgMDAwMEAwMEBQgFBQQEBQoHBwYIDAoMDAsKCwsNDhIQDQ4RDgsLEBYQERMUFRUVDA8XGBYUGBIUFRT/2wBDAQMEBAUEBQkFBQkUDQsNFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBT/wAARCAAgACADAREAAhEBAxEB/8QAGQABAQADAQAAAAAAAAAAAAAACAUDBgcJ/8QALBAAAgIBAgUCBQUBAAAAAAAAAQIDBAUAEQYHEiExE3EyQVGB0RciRmGUof/EABsBAAIDAQEBAAAAAAAAAAAAAAUIAAYHBAID/8QALxEAAgAFAQYEBQUAAAAAAAAAAQIAAwQFESEGEjFBUWETcZHRFBYiocFSU1SSsf/aAAwDAQACEQMRAD8A8sbt2e5bmnnmeaaRyzu7EliT5J1IkdF5L8DpxRdu3r0XrUay+mqP3DyN+BufuNCLhUmSoVDqf8jR9jbGlzmzKioXMtBjXgWPsNfMiOq5LlxhYsfYkjxNZpI42dVEYBJAJA0FSsmlgCxjUqjZ23JJdlp1yASNOggzU7s9O3DPBM8U0bhkkRiCpB8g6uMLNGLoaWfoRSzM2wUDuTv41CcamPSgsQANYUuOr0uUPLeNbrxx2YoGmZGOxmsMN+gfXvsvsNUhme4VP0cCfQQzdOlPsnZAJ5AYKSR+pzrgdddPIRewGVrZ3hmtPHciszS0w7mNu/X0fu7e++uWarSppUjGD+YOUNXKrqFJizAxKAnHXd1++YHSfGvvrQYUaNy5QUY8jzQwMEsQmU2S/Q3glVZh/wBAOhtycpSTGB5RbdkpKz75So4yN7OO4BI+4hTcZ8tcbxzQFW69mBfUEhetJ0sxG+wO4I277+PIGqHTV8ylbeTB84Zi77PUt6k+DPLKM5+k4J9cjHPhxinhOEcfw7iVx2PrJWrhOkhBsWO2xY/Unz76+E2qec/iOcmCNHa6e304paZN1cY056Yye5gecyeGavB3HmSw9NpWrVXQIZiC53RWO5AHzJ+WtHoZ7VNOs1+J94U3aO3SrTdJ1FIJKpjGeOqg9usRUkyPD2XaSFrGPyFaQgOhMckbdwe47j5663RZilXGQYBSJ82mmCdIYqw4EHBHkRFb9ROLT/I8v/sk/OuX4Gl/aX0EGPmC7/y5n9294U1LmhgzwnWjbMU5booRrKJLIDlzEN++/wAW+/3/AL1QXoJ/jkhDjJ5d4ZWTtLbzb0U1Cl9wZywznd158fz3gfQQW8pfijRJbNmV1VRsWZj4A1pQAAwIU1nZzvMcmP/Z"></p> <p>Hello Dear</p> <p>My name is Daren.</p> <p><br></p> 但是当我运行上面的代码时,结果只是打印here,而下一行并没有执行,甚至连process.exit()也没有执行。 我有什么错误吗?我只想更改 src 标签内的 <img 值。 如果还不足以解决问题,请向我询问更多信息,谢谢 过了一段时间,我找到了解决办法。但我使用正则表达式来替换 src 标签内的 <img 值。当您有多个 <img 标签时,可以用单个图像替换此解决方案。它将替换 src 标签内的所有 <img 值。 ... const re = /src=['"](?:[^"'\/]*\/)*([^'"]+)['"]/g; parsedTemplateContent = templateContent.replace(re,'src="cid:image"'); ... 您可以通过 getAttribute 函数获取 src 属性: let base64Image = root.querySelector('img').getAttribute('src');

回答 2 投票 0

如何使用 Ruby 查找 DOM 元素是否具有事件侦听器

我正在使用 Watir 和 Nokogiri 来解析网页并与它们交互。我想确定 DOM 元素在单击时是否触发脚本。根据我的研究,我了解到这...

回答 2 投票 0

如何在Python中的BeautifulSoup4中使用.next_sibling时忽略空行

因为我想删除html网站中重复的占位符,所以我使用BeautifulSoup的.next_sibling运算符。只要重复项位于同一行,就可以正常工作(参见数据)。但有些...

回答 4 投票 0

抓取 Next.js 页面后,Tailwind CSS 样式未应用于 React 应用程序

我有一个 Next.js 应用程序(版本 13),其中包含几个使用 Tailwind CSS 设计样式的组件。然后,从使用 React 和 Node.js 编写的 CMS 系统中抓取这些组件,并使用

回答 1 投票 0

如何提取每个<a href>标签内的内容?

我正在开展一个项目,涉及从网站提取一些数据。具体来说,我有兴趣提取每个类别的名称及其描述。 我已经考虑过你...

回答 1 投票 0

需要 Python 中正则表达式模式的帮助 – 解析复杂的 HTML 结构

我正在尝试使用 Python 的 re 模块解析复杂的 HTML 结构,但我的正则表达式模式遇到了障碍。这就是我想做的: 我有包含嵌套元素的 HTML 文本...

回答 2 投票 0

将所有链接与特定文本匹配

我正在寻找 PHP 中的正则表达式,它将锚点与其上的特定文本相匹配。例如。我想获得带有文本 mylink 的锚点,例如: 我...

回答 4 投票 0

Javascript 中解析 unicode 的行为差异

当我直接使用提供字符串的变量 (_)/正则表达式运行 JSON.parse 或decodeURI 时,它会抛出错误或不解码,但是当我使用相同的字符串运行这些函数时...

回答 1 投票 0

使用 find 时,BeautifulSoup 挂起

我的 bs4 软件包有问题。 我有一个 html 文档,如下所示: 数据=“”” 这是标签 我的 bs4 包裹有问题。 我有一份html文档,就像这样: data = """<html><head></head><body> <p> this is tab </p> <img src="image.jpg"> </body></html> """ 这是我的代码: from bs4 import BeautifulSoup soup = BeautifulSoup(data, 'html5lib') soup.find_all("a") 当我运行它时,bs4仍在循环中并且不返回任何内容,可能是因为在某些HTML数据中,标签a不存在。 非常感谢。 1. 是的,上面的例子工作正常。 2.但是,就我而言。 data 是一个多行 html 字符串的变量 from bs4 import BeautifulSoup data = open("file.htm").read() soup = BeautifulSoup(data, 'html5lib') soup.find_all("a") 3.请使用我的文件进行测试:file.htm 4.我使用的是beautifulsoup4==4.4.1。 Python 3.5.1 5.再次感谢。 尝试使用内置的 html.parser,即使 HTML 无效,它也能工作。 from bs4 import BeautifulSoup data = """<html><head></head><body> <p> this is tab </p> <img src="image.jpg"> </body></html> """ soup = BeautifulSoup(data, 'html.parser') soup.find_all("a") 我不明白为什么你的程序在使用find_all时会挂起,如果html页面很大,可能需要一段时间,但它不应该挂起。 您可以尝试以下一些方法: 如果您在解析网页之前下载网页,则可能会导致挂起。使用 pdb 检测程序挂起的确切位置,将此行添加到代码的开头 import pdb; pdb.set_trace() 并从那里跟踪它 确保您通过运行 Html5Lib 安装了 pip freeze | grep html5lib,如果它不存在,请使用 pip install html5lib 安装它 在类似的SO问题中,有人提到他们通过升级修复了它BeautifulSoup,尝试使用:pip install --upgrade beautifulsoup4 在 BeautifulSoup 文档中,他们建议对某些 Python 版本使用特定的解析器: 如果可以的话,我建议您安装并使用 lxml 以提高速度。 如果您使用的是 2.7.3 之前的 Python 2 版本,或者 3.2.2 之前的 Python 3 版本,则必须安装 lxml 或 html5lib – Python 的内置 HTML 解析器不支持在旧版本中非常好。 我在处理页面已解析的元素时遇到了同样的问题,并通过强制重新解码来解决。 这在我的代码片段上无限期且系统地运行: spans = subtree.find_all ("span") 这反而按预期工作: soup2 = BeautifulSoup(subtree, "html.parser") spans = soup2.find_all ("span")

回答 3 投票 0

将 HTML 解析到此数据模型中

我正在尝试将这段 HTML 解析为数据模型: HTML 是: id:1 类型:MCQ 问题:Alice 在 Simm 的帮助下安装了哪个应用程序? 我正在尝试将这段 HTML 解析为数据模型: HTML 为: <p>id: 1</p> <p>type: MCQ</p> <p>question: Which app does Alice install with Simm's help?</p> <p>options: </p> <p>Angry birds game</p> <p>Email app</p> <p>Chrome browser</p> <p>News reader</p> <p>answer: Angry birds game </p> <p /> 数据模型将如下所示: data class DataModel( val id: String, val type: String, val question: String, val options: List<String>, val answer: String ) 我有一个简单的解析器,在 : 之后有一个正则表达式。但是,我有一些项目需要进入列表(请参阅options:)。 我需要一些可以在 answer: 之前使用其他 标签的东西。我该怎么办? 我认为正则表达式可以通过对输入进行标记来帮助您完成任务。要组装输出,您将需要一些额外的编程。 我想出的正则表达式是: <[^>]+>(?:(\w+): )?([^<]*)<\/[^>]+> 这将产生一个匹配列表,例如: [ ["id", "1"], ["type", "MCQ"], ["question", "Which app does Alice install with Simm's help?"], ["options", ""], ["", "Angry birds game"], ["", "Email app"], ["", "Chrome browser"], ["", "News reader"], ["answer", "Angry birds game "] ] 确切的输出将取决于您使用的正则表达式实现,但这就是您将拥有的匹配的要点。 要组装输出,您需要逐一考虑每个匹配项。如果您看到诸如 ["options", ""] 之类的匹配项,那么您就知道这会启动一个列表,因为第二组是空字符串。当看到 ["", "Angry birds game"] 时你就知道这一定是一个列表项,因为第一组是空字符串。最后,当您看到 ["answer", "Angry birds game "] 时,您知道列表一定已经结束,因为两个组都非空。这是您需要做的一些额外的编程工作。

回答 1 投票 0

将 HTML 解析为数据模型

所以我尝试将这段 HTML 解析为数据模型 html 是 id:1 类型:MCQ 问题:Alice 在 Simm 的帮助下安装了哪个应用程序? 所以我尝试将这个 HTML 块解析为数据模型 html 是 <p>id: 1</p> <p>type: MCQ</p> <p>question: Which app does Alice install with Simm's help?</p> <p>options: </p> <p>Angry birds game</p> <p>Email app</p> <p>Chrome browser</p> <p>News reader</p> <p>answer: Angry birds game </p> <p /> 数据模型看起来像这样 data class DataModel( val id: String, val type: String, val question: String, val options: List<String>, val answer: String ) 我有一个简单的解析器,在:之后有一个正则表达式,但是我有需要进入列表的项目(请参阅options:) 我是正则表达式的新手,所以我需要一些可以在 answer: 之前使用其他 标签的东西,所以我想寻求帮助 提前非常感谢 我认为正则表达式可以通过对输入进行标记来帮助您完成任务。要组装输出,您将需要一些额外的编程。 我想出的正则表达式是: <[^>]+>(?:(\w+): )?([^<]*)<\/[^>]+> 这将产生一个匹配列表,例如: [ ["id", "1"], ["type", "MCQ"], ["question", "Which app does Alice install with Simm's help?"], ["options", ""], ["", "Angry birds game"], ["", "Email app"], ["", "Chrome browser"], ["", "News reader"], ["answer", "Angry birds game "] ] 确切的输出将取决于您使用的正则表达式实现,但这就是您将拥有的匹配的要点。 要组装输出,您需要逐一考虑每个匹配项。如果您看到诸如 ["options", ""] 之类的匹配项,那么您就知道这会启动一个列表,因为第二组是空字符串。当看到 ["", "Angry birds game"] 时你就知道这一定是一个列表项,因为第一组是空字符串。最后,当您看到 ["answer", "Angry birds game "] 时,您知道列表一定已经结束,因为两个组都非空。这是您需要做的一些额外的编程工作。

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.