用程序访问某个网页,要想得到指定的某个字段的值?请教高手如何实现

sun20597728 2007-06-29 03:28:28
如题
...全文
245 8 打赏 收藏 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
sz403518525 2007-07-10
  • 打赏
  • 举报
回复
就如LuoGD(抢第一楼)所说的那样。用TCppWebBrowser。代码仅供参考
IHTMLDocument2 *document;
IHTMLElement *body;
BSTR title,source,content;
(void *)document = web1->Document;
document->get_title(&title);
document->get_body(&body);
body->get_outerHTML(&source);
body->get_outerText(&content);
上面这些代码最好写在web1DocumentComplete事件里头,下面的代码是取值

IHTMLDocument2* pDocument ;
IHTMLElementCollection* p ;
IHTMLElement* link ;
long len ;
HRESULT hr ;
hr = web1->Document->QueryInterface(IID_IHTMLDocument2,(void**)&pDocument) ;
if( !SUCCEEDED(hr) )
{
ShowMessage("hehe") ;
return ;
}

pDocument->get_all(&p) ;
pDocument->Release() ;
p->get_length(&len) ;
for(int i=0;i<len;i++)
{
IDispatch* pDisp ;
Variant j ;//得到Collection中的第i个Element
p->item((Variant)i,j,&pDisp);
hr = pDisp->QueryInterface(IID_IHTMLElement,(void**)&link) ;
if( !SUCCEEDED(hr) )
return ;
pDisp->Release() ;
wchar_t* input ;
link->get_tagName(&input) ;
if( wcscmp(input,L"INPUT")==0 ) //提取所有的input,看你要取什么值
{
VARIANT v ;
link->getAttribute(L"NAME",0,&v) ;
wchar_t* va = v.bstrVal ;
AnsiString str = (AnsiString)va ;
ShowMessage(str );
}
link->Release() ;
}
IBMluck 2007-07-09
  • 打赏
  • 举报
回复
关键在怎样把所得数据的值给读出来,有没有代码。
wanglovec 2007-07-09
  • 打赏
  • 举报
回复
网上有篇 介绍 网络机器人的 文章 可以参考看看
LuoGD 2007-07-09
  • 打赏
  • 举报
回复
用TCppWebBrowser取得返回的网页数据(STRING),用POS找到信息的位置,再SUBSTRING取出你要的信息
huzhangyou 2007-07-08
  • 打赏
  • 举报
回复
直接获取HTML进行分析
TCppWebBrowser
IBMluck 2007-07-08
  • 打赏
  • 举报
回复
使用IdHTTP1->GET(),然后对获得的数据进行分析。
sun20597728 2007-06-29
  • 打赏
  • 举报
回复
因为本人刚接触BCB不久,不会用DOM,还请高手指点一二。
pp616 2007-06-29
  • 打赏
  • 举报
回复
用DOM。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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