从 HTML 获取渲染文本 (Delphi)
我有一些 HTML,我需要从页面中提取实际的书面文本。
到目前为止,我已经尝试使用网络浏览器并渲染页面,然后转到文档属性并抓取文本。这有效,但仅在支持浏览器的情况下(IE com 对象)。问题是我希望它也能够在 wine 下运行,所以我需要一个不使用 IE COM 的解决方案。
必须有一种合理的程序化方法来做到这一点。
I have some HTML and I need to extract the actual written text from the page.
So far I have tried using a web browser and rendering the page, then going to the document property and grabbing the text. This works, but only where the browser is supported (IE com object). The problem is I want this to be able to run under wine also, so I need a solution that doesn't use IE COM.
There must be a programatic way to do this that is reasonable.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(4)
我不确定在 Delphi 中解析 HTML 的推荐方法是什么,但如果是我,我会很想捆绑 html2text 的副本(旧的 C++ 程序 使用该名称或较新的 Python 程序)并生成对其中之一的调用。
您可以使用 py2exe 将 Python html2text 转换为可执行文件。这两个 html2text 程序都是根据 GPL 获得许可的,但只要您只是将它们的可执行文件与您的应用程序捆绑在一起,并根据 GPL 的限制提供它们的源代码,那么您应该没问题。
I'm not sure what the recommended way of parsing HTML in Delphi is, but if it were me, I'd be tempted to just bundle a copy of html2text (either the older C++ program by that name or the newer Python program) and spawn a call to one of those.
You can turn the Python html2text into an executable using py2exe. Both html2text programs are licensed under the GPL, but as long as you merely bundle their executable with your app and make their source available according to the GPL's restrictions, then you ought to be okay.
您可以直接使用 TIdHttp 及其 Get 方法,而不是使用 TWebBrowser。
你得到了 html 字符串。
Instead of using a TWebBrowser, you can directly use a TIdHttp and its Get method.
You get the html string back.
这是一个很好的简单例程,从 Scalabium 复制:
然后您可以轻松修改它以执行以下 操作:正是您想要的。
Here's a nice simple routine, copied from Scalabium:
You can then easily modify this to do exactly what you want.
稍微增强了之前创建多行文本的功能
Slight enhancement of the previous function for creating multiline text