Questions tagged «html-parsing»

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


30
HTML抓取的选项?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 6年前关闭。 我正在考虑尝试Beautiful Soup,一个用于HTML抓取的Python包。还有其他我应该查看的HTML抓包工具吗?Python不是必需的,我实际上也对其他语言感兴趣。 到目前为止的故事: 蟒蛇 美丽的汤 xml文件 HTQL cra草 机械化 红宝石 能吉里 杏 机械化 scrAPI scrubyt! 袋熊 瓦蒂尔 。净 HTML敏捷包 瓦丁 佩尔 WWW ::机械化 网页抓取工具 爪哇 标签汤 HtmlUnit 网络收割 防护 so Jericho HTML解析器 的JavaScript 请求 欢乐 阿图 节点马 幻影 的PHP 古特 htmlSQL PHP简单HTML DOM解析器 使用CURL进行PHP爬取 猩红查询 他们大多数 屏幕刮板

9
用JS解析HTML字符串
我搜索了一个解决方案,但没有任何相关之处,所以这是我的问题: 我想解析一个包含HTML文本的字符串。我想用JavaScript来做。 我尝试了这个库,但似乎它解析了当前页面的HTML,而不是字符串。因为当我尝试下面的代码时,它更改了页面的标题: var parser = new HTMLtoDOM("<html><head><title>titleTest</title></head><body><a href='test0'>test01</a><a href='test1'>test02</a><a href='test2'>test03</a></body></html>", document); 我的目标是从读取的HTML外部页面中提取链接,就像读取字符串一样。 您知道执行此操作的API吗?

18
使用正则表达式解析HTML:为什么不呢?
似乎在stackoverflow上,每个问询者都在使用正则表达式从HTML中获取某些信息,每个问题不可避免地会有一个“答案”,说不使用正则表达式来解析HTML。 为什么不?我知道那里有没有引号的“真实” HTML解析器,例如Beautiful Soup,而且我敢肯定它们功能强大且有用,但是如果您只是在做简单,快速或肮脏的事情,那为什么呢?当使用一些正则表达式语句就可以了吗? 此外,对于正则表达式,我是否不了解某些基本知识,因而使它们成为一般解析的错误选择?

3
哪种HTML解析器是最好的?[关闭]
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案会得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意测验或进一步的讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。 7年前关闭。 我编写了很多解析器。到目前为止,我一直使用HtmlUnit无头浏览器进行解析和浏览器自动化。 现在,我想将两个任务分开。 由于我80%的工作仅涉及解析,因此我想使用一个简单的HTML解析器,因为在HtmlUnit中花很多时间才能首先加载页面,然后获取源然后解析它。 我想知道哪个HTML解析器是最好的。如果解析器与HtmlUnit解析器接近,则解析器会更好。 编辑: 最好的情况是,我至少需要以下功能: 速度 通过其“ id”或“ name”或“ tag type”轻松查找任何HtmlElement。 如果不清除脏HTML代码,对我来说可以。我不需要清理任何HTML源。我只需要一种最简单的方法即可在HtmlElements之间移动并从中获取数据。

7
使用Python解析HTML
我正在寻找适用于Python的HTML Parser模块,该模块可以帮助我以Python列表/字典/对象的形式获取标签。 如果我有以下格式的文件: <html> <head>Heading</head> <body attr1='val1'> <div class='container'> <div id='class'>Something here</div> <div>Something else</div> </div> </body> </html> 那么它应该给我一种通过HTML标签的名称或ID访问嵌套标签的方法,这样我基本上可以要求它为我div提供class='container'包含在body标签中或类似标签的标签中的内容/文本。 如果您使用了Firefox的“检查元素”功能(查看HTML),您就会知道它以一种很好的嵌套方式(如树)为您提供了所有标签。 我更喜欢一个内置模块,但是可能要求太多。 我在Stack Overflow上遇到了很多问题,在互联网上也有一些博客,其中大多数都建议使用BeautifulSoup或lxml或HTMLParser,但是其中很少有详细介绍功能,最后只是争论哪个更快/更有效。


5
如果不使用regexp,HTML解析如何工作?
我每天看到很多问题,问如何解析或从HTML字符串中提取内容,第一个答案/评论始终是“不要使用RegEx解析HTML,以免您感到愤怒!” (最后一部分有时被省略)。 这对我来说很令人困惑,我一直认为,一般而言,解析任何复杂字符串的最佳方法是使用正则表达式。那么HTML解析器如何工作?它不使用正则表达式进行解析。 使用正则表达式的一个特殊论点是,并不总是存在解析替代方法(例如JavaScript,其中DOMDocument不是普遍可用的选项)。以jQuery为例,使用正则表达式将HTML字符串转换为DOM节点似乎可以很好地进行管理。 不确定是否要继续进行此操作,这是一个真正的问题,我想得到答复,而并不是要成为讨论话题。

5
如何使用Node.js解析HTML页面
我需要解析(服务器端)大量的HTML页面。 我们都同意,regexp不是行之有效的方法。 在我看来,javascript是解析HTML页面的本机方式,但是这种假设取决于服务器端代码,该代码具有javascript在浏览器内部具有的所有DOM功能。 Node.js是否具有内置的功能? 有没有更好的方法来解决此问题,请在服务器端解析HTML?

8
如何使用grep,regex或perl按照模式提取字符串
我有一个看起来像这样的文件: <table name="content_analyzer" primary-key="id"> <type="global" /> </table> <table name="content_analyzer2" primary-key="id"> <type="global" /> </table> <table name="content_analyzer_items" primary-key="id"> <type="global" /> </table> 我需要的是遵循引号中提取任何东西name=,即content_analyzer,content_analyzer2和content_analyzer_items。 我在Linux机器上执行此操作,因此使用sed,perl,grep或bash的解决方案很好。

8
如何在JavaScript或jQuery中标准化HTML?
标签可以具有多个属性。属性在代码中出现的顺序无关紧要。例如: <a href="#" title="#"> <a title="#" href="#"> 如何在Javascript中“标准化” HTML,因此属性的顺序始终相同?我不在乎选择哪个顺序,只要顺序始终相同即可。 更新:我的最初目标是使比较(在JavaScript中)2个HTML页面(略有差异)更加容易。因为用户可以使用不同的软件来编辑代码,所以属性的顺序可能会更改。这使得差异太冗长。 答案:好的,首先感谢您的回答。是的,这是可能的。这是我设法做到的方式。这是一个概念证明,可以肯定地对其进行优化: function sort_attributes(a, b) { if( a.name == b.name) { return 0; } return (a.name < b.name) ? -1 : 1; } $("#original").find('*').each(function() { if (this.attributes.length > 1) { var attributes = this.attributes; var list = []; for(var i =0; …

29
您可以提供解析HTML的示例吗?
您如何使用各种语言和库来解析HTML? 回答时: 个别评论将链接到有关如何使用正则表达式解析HTML的问题的答案,以显示正确的处理方式。 为了保持一致性,我要求示例为hrefin锚标记解析HTML文件。为了便于搜索此问题,请您遵循以下格式 语言:[语言名称] 图书馆:[图书馆名称] [example code] 请使库成为库文档的链接。如果您要提供除提取链接以外的示例,还请包括: 目的:[解析做什么]
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.