专注收集记录技术开发学习笔记、技术难点、解决方案
网站信息搜索 >> 请输入关键词:
您当前的位置: 首页 > C++ Builder

bcb定时抓取网页数据并处理的有关问题

发布时间:2011-06-28 14:03:20 文章来源:www.iduyao.cn 采编人员:星星草
请教高手bcb定时抓取网页数据并处理的问题?
请教高手bcb定时抓取网页数据并处理的问题?
(最少每分钟一次)
1.用NMHTTP还是IdHTTP?或者其它更好的方式?
 用NMHTTP不定期出错?一分钟内多次抓取出错,好象是已经连接的问题,能不能先断开再抓取?
//---------------------------------------
AnsiString __fastcall get_http_html(char* htt)
{
  AnsiString ss;
  try{
  // 能不能先断开再抓取?
  Form1->NMHTTP1->TimeOut = 30000;
  Form1->NMHTTP1->InputFileMode = false;
  Form1->NMHTTP1->OutputFileMode = false;
  Form1->NMHTTP1->ReportLevel = Status_Basic;
  if(Form1->NMHTTP1->Connected==false)
  Form1->NMHTTP1->Get(htt);
  ss=Form1->NMHTTP1->Body;
  }
  catch(...)
  {
  }
  return ss;
}
2.定时器Timer工作时程序界面停止响应,如果用线程,程序框架该怎样写?

//---------------------------------------
void __fastcall TForm1::TimerworkTimer(TObject *Sender)
{
  get_min_http((get_http_html2(all_http.c_str())).c_str()); //抓取
  view_min(); //计算并显示
}

------解决方案--------------------
用什么都一样. 直接用socket API也行, 建议放到另外的线程中执行, 抓取网页时, 还要考虑缓冲的问题.
------解决方案--------------------
Form1->IdHTTP1->Disconnect();
这样即可、
友情提示:
信息收集于互联网,如果您发现错误或造成侵权,请及时通知本站更正或删除,具体联系方式见页面底部联系我们,谢谢。

其他相似内容:

热门推荐: