在获取网页源码时,webBrowser的使用问题,求助谢谢!

xuanwu123 2014-04-30 11:31:41
我想抓取网页的内容,并写入sql数据库中,

1.我通过FormCreate,可以把访问的网页内容写入数据库中
(1)
procedure TForm1.FormCreate(Sender: TObject);
begin
webbrowser1.Navigate(widestring('网页地址'));
end;
(2)procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
const pDisp: IDispatch; var URL: OleVariant)
if (webBrowser1.ReadyState =4) then
if (WebBrowser1.Application = pDisp) then
begin
y:=WebBrowser1.OleObject.Document.body.outerHTML;
......然后获取数据写入数据库

2.我通过Timer事件 想要其循环页面获取网页数据,则通过WebBrowser1DocumentComplete,无法获取到全部的网页信息(通过FormCreate 可以获取30000字符,而用timer循环时,只能获取网页的15000字符),我需要的内容无法获取到...

请求各位,这个是什么情况啊?

...全文
214 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
beiguofengguang 2014-05-08
  • 打赏
  • 举报
回复
把TEmbeddedWB直接修改为twebbrowser类型即可
asd杂草 2014-05-03
  • 打赏
  • 举报
回复
用indyhttp控件试试
chinawcs 2014-05-03
  • 打赏
  • 举报
回复
都什么年代了 还用 webBrowser 1 速度慢 2 mshtml有内存泄露 改用indy idhttp吧
xuanwu123 2014-05-01
  • 打赏
  • 举报
回复
引用 1 楼 beiguofengguang 的回复:
function TFrmMain.GetSources1(FWB: TEmbeddedWB): String; var iall : IHTMLElement; begin if Assigned(FWB.Document) then begin iall := (FWB.Document AS IHTMLDocument2).body; while iall.parentElement <> nil do begin iall := iall.parentElement; end; result := iall.outerHTML; end; end;
TEmbeddedWB 这个是第三方控件么?是不是用这个来获取网页内容?谢谢·~
beiguofengguang 2014-04-30
  • 打赏
  • 举报
回复
function TFrmMain.GetSources1(FWB: TEmbeddedWB): String; var iall : IHTMLElement; begin if Assigned(FWB.Document) then begin iall := (FWB.Document AS IHTMLDocument2).body; while iall.parentElement <> nil do begin iall := iall.parentElement; end; result := iall.outerHTML; end; end;

5,388

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧