我使用 Borland Turbo C++(类似于 Builder c++,但组件较少)。
当我执行 Webbrowser1->Navigate(MyURL) 时,我会正确收到所需的网站。就我而言,它只是一个文本网站,甚至不是 html 代码。我可以在 Webbrowser 的窗口中看到它。
如何访问接收到的文本以便能够对其进行操作、计算字符数等?最好的情况是如果我能把它变成一个 Ansistring。
我不知道该怎么做。我使用哪个类或尝试转换为什么类型。
我使用 Borland Turbo C++(类似于 Builder c++,但组件较少)。
当我执行 Webbrowser1->Navigate(MyURL) 时,我会正确收到所需的网站。就我而言,它只是一个文本网站,甚至不是 html 代码。我可以在 Webbrowser 的窗口中看到它。
如何访问接收到的文本以便能够对其进行操作、计算字符数等?最好的情况是如果我能把它变成一个 Ansistring。
我不知道该怎么做。我使用哪个类或尝试转换为什么类型。
首先导航到 MyURL:
void __fastcall TForm1::Button1Click(TObject *Sender)
{
WebBrowser1->Navigate(MyURL);
}
将检索代码放入OnDocumentComplete事件中:
void __fastcall TForm1::WebBrowser1DocumentComplete(TObject *Sender, LPDISPATCH pDisp,
Variant *URL)
{
Variant document = WebBrowser1->Document;
Variant body = document.OlePropertyGet("body");
Variant parentElement = body.OlePropertyGet("parentElement");
AnsiString html = parentElement.OlePropertyGet("outerHTML");
Memo1->Text = html;
}
或者简单地说:
Memo1->Text = Variant(WebBrowser1->Document).OlePropertyGet("body").OlePropertyGet("parentElement").OlePropertyGet("outerHTML");
请注意,您可以在没有 TWebBrowser 的情况下简单地发送 http 请求并检索响应文本。