知道IHTMLDocument2接口,怎么得到一个网页的所有文本内容?? 网页中有很多文本。我要得到这些文本来比较,请问怎么得到?? UP者有分!! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 如果只提取超文本中的text的话,可以用IHtmlDocument2得到body, 再用body的get_innerText就行了IHTMLElement* pBody;hr = pMSHTML->get_body(&pBody); // pMSHTML是IHtmlDocument2接口指针,例如从CHtmlView中得到的if (SUCCEEDED(hr)){BSTR bstrText;hr = pBody->get_innerText(&bstrText); if (SUCCEEDED(hr)){ SysFreeString(bstrText);}pBody->Release();} nineclock(本人成分:59%的帅,40%的酷,1%的微量羞涩(-'_'-)) 我很急,帮帮我啊 我这里的文本指的是网页上除图片外的所有文字。能不能得到特定的文字??我现在想的是得到网页所有的文字,再在这些文字里面得到我感兴趣的东西!==========================================BOOL GetSourceHtml(CString theUrl,CString Filename) { CInternetSession session; CInternetFile* file = NULL; try { // 试着连接到指定URL file = (CInternetFile*) session.OpenURL(theUrl); } catch (CInternetException* m_pException) { // 如果有错误的话,置文件为空 file = NULL; m_pException->Delete(); return FALSE; } // 用dataStore来保存读取的网页文件 CStdioFile dataStore; if (file) { CString somecode; //也可采用LPTSTR类型,将不会删除文本中的\n回车符 BOOL bIsOk = dataStore.Open(strPath+"\\"+Filename, CFile::modeCreate | CFile::modeWrite | CFile::shareDenyWrite | CFile::typeText); if (!bIsOk) return FALSE; // 读写网页文件,直到为空 while (file->ReadString(somecode) != NULL) //如果采用LPTSTR类型,读取最大个数nMax置0,使它遇空字符时结束 { dataStore.WriteString(somecode); dataStore.WriteString("\n"); //如果somecode采用LPTSTR类型,可不用此句 } file->Close(); delete file; } else { dataStore.WriteString(_T("到指定服务器的连接建立失败...")); return FALSE; } return TRUE;}你试试行不行~ 试试 利用 TextRange() 来完成,应该是可以的 微软给的例子:How To Programmatically Save an HTML Page to Disk HRESULT hr = E_FAIL; IDispatch* pDisp = NULL; IHTMLDocument2* pDoc = NULL; pDisp = m_webOC.GetDocument(); if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc))) { IPersistFile* pFile = NULL; if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile,(void**)&pFile))) { LPCOLESTR file = L"c:\\test1.htm"; pFile->Save(file,TRUE); } } http://blog.csdn.net/jiangsheng/archive/2003/11/09/3795.aspx里面演示了如何分析HTML网页…… 微软给的例子:How To Programmatically Save an HTML Page to Disk HRESULT hr = E_FAIL; IDispatch* pDisp = NULL; IHTMLDocument2* pDoc = NULL; pDisp = m_webOC.GetDocument(); if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc))) { IPersistFile* pFile = NULL; if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile,(void**)&pFile))) { LPCOLESTR file = L"c:\\test1.htm"; pFile->Save(file,TRUE); } }!!!!!!!要得是得到网页的文本内容呀! 在oracle中时间vc6 putcollect用法出错 这个是什么错误?error C2039: 'Format' : is not a member of 'CStatic' 100分求助,MIDL2039错误是什么意思 如何让我的子进程只能在主进程中启动?在线高分 推荐几本winsock和directX编程的书好么?(VC的) 请教,一个很白的问题 如何知道自己软件版本 急急急!!!!关于用vc调用word,高手请进!! ?????如何使窗体成为活动???????? UINT类型转化成CString类型问题?求高手指点? vc++函数问题! 求《vc技术内幕第四版》
hr = pMSHTML->get_body(&pBody); // pMSHTML是IHtmlDocument2接口指针,例如从CHtmlView中得到的
if (SUCCEEDED(hr))
{
BSTR bstrText;
hr = pBody->get_innerText(&bstrText);
if (SUCCEEDED(hr))
{
SysFreeString(bstrText);
}
pBody->Release();
}
我很急,帮帮我啊
我这里的文本指的是网页上除图片外的所有文字。能不能得到特定的文字??我现在想的是得到网页所有的文字,再在这些文字里面得到我感兴趣的东西!
==========================================
BOOL GetSourceHtml(CString theUrl,CString Filename)
{
CInternetSession session;
CInternetFile* file = NULL;
try
{
// 试着连接到指定URL
file = (CInternetFile*) session.OpenURL(theUrl);
}
catch (CInternetException* m_pException)
{
// 如果有错误的话,置文件为空
file = NULL;
m_pException->Delete();
return FALSE;
} // 用dataStore来保存读取的网页文件
CStdioFile dataStore;
if (file)
{
CString somecode; //也可采用LPTSTR类型,将不会删除文本中的\n回车符
BOOL bIsOk = dataStore.Open(strPath+"\\"+Filename,
CFile::modeCreate
| CFile::modeWrite
| CFile::shareDenyWrite
| CFile::typeText);
if (!bIsOk)
return FALSE;
// 读写网页文件,直到为空
while (file->ReadString(somecode) != NULL) //如果采用LPTSTR类型,读取最大个数nMax置0,使它遇空字符时结束
{
dataStore.WriteString(somecode);
dataStore.WriteString("\n"); //如果somecode采用LPTSTR类型,可不用此句
}
file->Close();
delete file;
}
else
{
dataStore.WriteString(_T("到指定服务器的连接建立失败..."));
return FALSE;
}
return TRUE;
}
你试试行不行~
HRESULT hr = E_FAIL;
IDispatch* pDisp = NULL;
IHTMLDocument2* pDoc = NULL; pDisp = m_webOC.GetDocument(); if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc)))
{
IPersistFile* pFile = NULL;
if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile,(void**)&pFile)))
{
LPCOLESTR file = L"c:\\test1.htm";
pFile->Save(file,TRUE);
}
}
里面演示了如何分析HTML网页……
HRESULT hr = E_FAIL;
IDispatch* pDisp = NULL;
IHTMLDocument2* pDoc = NULL; pDisp = m_webOC.GetDocument(); if(SUCCEEDED(hr = pDisp->QueryInterface(IID_IHTMLDocument2,(void**)&pDoc)))
{
IPersistFile* pFile = NULL;
if(SUCCEEDED(pDoc->QueryInterface(IID_IPersistFile,(void**)&pFile)))
{
LPCOLESTR file = L"c:\\test1.htm";
pFile->Save(file,TRUE);
}
}!!!!!!!要得是得到网页的文本内容呀!