如何从TWebBrowser显示的网页中提取文本使用Delphi?

更新于
2026-10-05 05:46:00
2阅读来源:SEO资源
  • 内容介绍
  • 相关推荐

本文共计344个文字,预计阅读时间需要2分钟。

使用Delphi的TWebBrowser控件直接提取网页中的文本内容,可以通过处理DocumentComplete事件来实现。以下是一个简化的代码示例,展示了如何在DocumentComplete事件中提取并输出网页的文本内容:

delphiprocedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pD: IAxyDocument);var HTMLContent: String;begin // 获取网页的HTML内容 HTMLContent :=WebBrowser1.Document.body.innerHTML;

// 输出提取的文本内容 Memo1.Text :=ExtractTextFromHTML(HTMLContent);end;

// 简单的文本提取函数function ExtractTextFromHTML(const HTML: String): String;var i: Integer; IsTag: Boolean;begin Result :=''; IsTag :=False; for i :=1 to Length(HTML) do begin if (HTML[i] in ['']) then IsTag :=not IsTag else if not IsTag then Result :=Result + HTML[i]; end;end;

这段代码首先定义了`WebBrowser1DocumentComplete`过程,当网页加载完成时会调用这个过程。在这个过程中,我们使用`WebBrowser1.Document.body.innerHTML`获取网页的HTML内容,然后调用自定义的`ExtractTextFromHTML`函数来提取文本。

`ExtractTextFromHTML`函数简单地遍历HTML内容,忽略所有的标签,只保留文本内容。请注意,这种方法可能不会处理所有的HTML标签和特殊情况,但可以提供一个基础的文本提取功能。

我使用delphi 7,我想直接从TWebBrowser中显示的网页中提取网页中显示的文本(无图像….).可以做到吗?我该怎么做? 我用了以下……

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var Document: IHtmlDocument2; begin edit1.text:=url; document := webbrowser1.document as IHtmlDocument2; memo2.lines.add(trim(document.body.innerhtml)); // to get html memo1.lines.add(trim(document.body.innertext)); // to get text end;

本文共计344个文字,预计阅读时间需要2分钟。

使用Delphi的TWebBrowser控件直接提取网页中的文本内容,可以通过处理DocumentComplete事件来实现。以下是一个简化的代码示例,展示了如何在DocumentComplete事件中提取并输出网页的文本内容:

delphiprocedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pD: IAxyDocument);var HTMLContent: String;begin // 获取网页的HTML内容 HTMLContent :=WebBrowser1.Document.body.innerHTML;

// 输出提取的文本内容 Memo1.Text :=ExtractTextFromHTML(HTMLContent);end;

// 简单的文本提取函数function ExtractTextFromHTML(const HTML: String): String;var i: Integer; IsTag: Boolean;begin Result :=''; IsTag :=False; for i :=1 to Length(HTML) do begin if (HTML[i] in ['']) then IsTag :=not IsTag else if not IsTag then Result :=Result + HTML[i]; end;end;

这段代码首先定义了`WebBrowser1DocumentComplete`过程,当网页加载完成时会调用这个过程。在这个过程中,我们使用`WebBrowser1.Document.body.innerHTML`获取网页的HTML内容,然后调用自定义的`ExtractTextFromHTML`函数来提取文本。

`ExtractTextFromHTML`函数简单地遍历HTML内容,忽略所有的标签,只保留文本内容。请注意,这种方法可能不会处理所有的HTML标签和特殊情况,但可以提供一个基础的文本提取功能。

我使用delphi 7,我想直接从TWebBrowser中显示的网页中提取网页中显示的文本(无图像….).可以做到吗?我该怎么做? 我用了以下……

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject; const pDisp: IDispatch; var URL: OleVariant); var Document: IHtmlDocument2; begin edit1.text:=url; document := webbrowser1.document as IHtmlDocument2; memo2.lines.add(trim(document.body.innerhtml)); // to get html memo1.lines.add(trim(document.body.innertext)); // to get text end;