怎样在vc里编写代码获得web browser控件浏览的网页(HTML)的源文件?

w7849516230 2009-03-10 01:58:15
在vc中使用了web browser控件,可以正常的浏览网页,但是希望能获得所浏览的页面的HTML的源文件,并将其保存到文本文件中。
看了一点代码,都是在vb下或者delphi下的~!
在msdn里有详细说这个控件的么?(简单说一下搜索词,第几个!)谢谢!!!
...全文
360 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
w7849516230 2009-03-12
  • 打赏
  • 举报
回复
我自己找了点别的方法,但还是谢谢大家了!
CInternetSession localsession;//定义网络连接session
CString line;
CInternetFile* webfile=NULL;
UpdateData(true);
try
{
webfile=(CInternetFile*)localsession.OpenURL (str);//请求服务

}
catch(CInternetException* pException)
{
webfile=NULL;pException->Delete ();
}
if(webfile)
{
HANDLE hFile;
hFile=CreateFile("123.txt",GENERIC_WRITE,0,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD dwWrites;
int i=0;
while(webfile->ReadString (line))//按行读取
{
line=line+"\n";//方便以后再按行读
WriteFile(hFile,line,strlen(line),&dwWrites,NULL);
}

CloseHandle(hFile);
}

把获取的源文件保存到了123.txt中了。可惜的是没有使用web browser提供的方法!
e7844 2009-03-11
  • 打赏
  • 举报
回复
CodeProject

CComQIPtr<IHTMLDocument2, &IID_IHTMLDocument2> pdoc=(IHTMLDocument2)m_ie.GetDocument();
if(pdoc==NULL)return;
CComPtr<IHTMLElement> pElem;
if(pdoc->get_body(&pElem)!=S_OK||pElem==NULL)return;
CComPtr<IHTMLElement> pElem2;
if(pElem->get_parentElement(&pElem2)!=S_OK||pElem2==NULL)return;
BSTR bs;
if(pElem2->get_outerHTML(&bs)==S_OK)
{
CString str=(CString)bs;//***************str
}
::SysFreeString(bs);
zhaiweihua 2009-03-11
  • 打赏
  • 举报
回复
LPDISPATCH lpDispatch = NULL;
LPOLECOMMANDTARGET lpOleCommandTarget = NULL;

try
{
m_pBrowserApp->get_Document(&lpDispatch);
if(lpDispatch == NULL)
return S_OK;
ASSERT(lpDispatch);

// Get an IDispatch pointer for the IOleCommandTarget interface.
lpDispatch->QueryInterface(IID_IOleCommandTarget, (void**)&lpOleCommandTarget);
ASSERT(lpOleCommandTarget);

lpDispatch->Release();
lpDispatch = NULL;
//OLECMDID_SHOWSCRIPTERROR
// Invoke the given command id for the WebBrowser control
if(lpOleCommandTarget != NULL)
{
HRESULT hr = lpOleCommandTarget->Exec(&CGID_IWebBrowser, HTMLID_VIEWSOURCE, 0,
NULL, NULL);
lpOleCommandTarget->Release();
lpOleCommandTarget = NULL;
return hr;
}
else
return S_OK;
}catch(...){}
oyljerry 2009-03-10
  • 打赏
  • 举报
回复
http://www.4oa.com/Article/html/6/32/463/2005/16133.html
levelmouse 2009-03-10
  • 打赏
  • 举报
回复
用IHTMLDocument2
jameshooo 2009-03-10
  • 打赏
  • 举报
回复
document.documentElement.outerHTML
把它翻译成VC代码

3,055

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC HTML/XML
社区管理员
  • HTML/XML社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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