Harser 是一个简单的 Python HTML 解析器。
安装:pip install harser
示例代码:
>>> from harser import Harser >>> HTML = ''' <html><body> <div class="header" id="id-header"> <li class="nav-item" data-nav="first-item" href="/nav1">First item</li> <li class="nav-item" data-nav="second-item" href="/nav2">Second item</li> <li class="nav-item" data-nav="third-item" href="/nav3">Third item</li> </div> <div>First layer <h3>Lorem Ipsum</h3> <span>Dolor sit amet</span> </div> <div>Second layer</div> <div>Third layer <span class="text">first block</span> <span class="text">second block</span> <span>third block</span> </div> <span>fourth layer</span> <img /> <div class="footer" id="id-foobar" foobar="ab bc cde"> <h3 some-attr="hey"> <span id="foobar-span">foo ter</span> </h3> </div> </body></html> ''' >>> harser = Harser(HTML) >>> harser.find('div', class_='header').children(class_='nav-item').find('text').extract() # Or just # harser.find(class_='nav-item').find('text').extract() ['First item', 'Second item', 'Third item'] >>> harser.find(class_='nav-item').get_attr('href').extract() ['/nav1', '/nav2', '/nav3'] # It is equally >>> harser.find('div', class_='header', id='id-header') >>> harser.find('div', attrs={'class': 'header', 'id': 'id-header'}) >>> harser.find(id__contains='bar').get_attr('class').extract() ['footer'] >>> harser.find(href__not_contains='2').find('text').extract() ['First item', 'Third item'] >>> harser.find(attrs={'data-nav__contains': 'second'}).next_siblings().find('text').extract() ['Third item'] >>> harser.find('li').parent().next_siblings(filters={'text__contains': 'Second'}).clean_extract() ['<div>Second layer</div>'] >>> harser.find('h3', filters={'span.@id__starts_with': 'foo'}).get_attr('some-attr').extract() ['hey'] >>> harser.find('div').children('h3').xpath '//descendant::div/h3'
HTML5 Boilerplate 默认提供两个 html 页面: index.html 404.html index.html no-js类 no-js 类可以让开发者依据 JavaScript 被启用(.js)或被禁止(.no-js)两种状态,更轻易准确地添加自定义样式。 使用这个技巧也有助于避免浏览器闪烁(FOUC)。 lang 属性 请认真考虑在 <html> 中添加 lang 属性,从而
问题内容: 在nodejs上有像Ruby的nokogiri这样的东西吗?我的意思是用户友好的HTML解析器。 我在Node.js模块页面上看到了一些解析器,但是找不到漂亮又新鲜的东西。 问题答案: 如果要构建DOM,可以使用jsdom。 还有cheerio,它具有jQuery接口,并且比旧版本的jsdom快很多,尽管如今它们的性能相似。 您可能想看一下htmlparser2,它是一个流解析器,根据
问题内容: 什么HTML解析器具有以下功能: 快速 线程安全 可靠且无错误 解析HTML和XML 处理错误的HTML 有一个DOM实现 支持HTML4,JavaScript和CSS标签 相对简单的面向对象的API 您认为哪种解析器更好? 谢谢。 问题答案: ApacheTika是最佳选择。Apache最近从现有项目中提取了许多子项目并将其公开。提卡(Tika)是其中之一,以前是Apache Luc
问题内容: 我正在开发一个从网站上抓取数据的应用程序,我想知道应该如何获取数据。具体来说,我需要包含在使用特定CSS类的许多div标签中的数据-目前(出于测试目的)我只是在检查 在HTML的每一行中-都可以,但是我不禁感到有更好的解决方案。 有什么好方法可以给类添加一行HTML并提供一些好方法,例如: 问题答案: “ JTidy是HTML Tidy的Java端口,HTML Tidy是HTML语法检
本文向大家介绍使用PHP的HTML DOMDocument解析HTML,包括了使用PHP的HTML DOMDocument解析HTML的使用技巧和注意事项,需要的朋友参考一下 可以通过以下代码获取<div>标记内的<div>标记内的文本,其中<div>内的class =“ main”内- 示例 输出结果 这将产生以下输出-
问题内容: 总而言之,我们正在使用AngularJS开发一个Web应用程序,并且我们有一个用例/需求(根本不会经常发生),在此我们需要从静态服务器中检索完整的HTML文档。但是,似乎$ http对象返回了原始HTML字符串作为其“数据”。我们试图避免使用外部库(例如jQuery),但是我们需要将该原始HTML字符串解析为可查询的DOM对象。我们可以使用iframe并完成它,但是出于众所周知的原因,
前面介绍了很多眼花缭乱的新技术,关于渲染,关于硬件加速,关于布局,关于其他很多,同大家一样,我也花了很多时间来消化它们。本章介绍稍微基础些的话题(本系列的写作顺序完全是随心所欲地),就是在渲染整个过程的初始阶段---HTML解析。不过这不表示它简单,其实这里是非常绕人的。在前面描述渲染过程,其实也是回避了这些方面的很多细节,原因也很简单,我自己也没有完全仔细地了解清楚. :-( 现在又重新阅读和d
问题内容: 到目前为止,我一直在使用Cobra,因为它很容易,但是不幸的是,它在一些测试用例中存在一些问题。有人建议使用经过测试的库吗? 我尝试了Cobra内置的HTMLCleaner并没有运气。 问题答案: Mozilla HTML Parser 看起来很有趣。根据定义,它应该和Gecko引擎本身一样好,这很可能满足您的需