有做过从网页中获取价钱的工具没有,给些提示。不胜感激。
------解决思路----------------------
void CLocateDlg::OnOK()
{
HRESULT hr = S_OK;
IHTMLDocument2 *pDoc = (IHTMLDocument2 *)m_web.get_Document();
if (pDoc == NULL) return;
IHTMLDocument3 *pDoc_3 = NULL;
if (pDoc->QueryInterface(IID_IHTMLDocument3, (void **)&pDoc_3) != S_OK)
{
pDoc->Release();
return;
}
IHTMLElement *pLng = NULL;
if (pDoc_3->getElementById(_T("lngX"), &pLng) == S_OK)
{
_variant_t var;
if (pLng->getAttribute(_T("value"), 0, &var) == S_OK && var.vt == VT_BSTR)
m_pt.x = ::wcstod(var.bstrVal, NULL);
pLng->Release();
}
IHTMLElement *pLat = NULL;
if (pDoc_3->getElementById(_T("latY"), &pLat) == S_OK)
{
_variant_t var;
if (pLat->getAttribute(_T("value"), 0, &var) == S_OK && var.vt == VT_BSTR)
m_pt.y = ::wcstod(var.bstrVal, NULL);
pLat->Release();
}
pDoc_3->Release();
pDoc->Release();
CDialog::OnOK();
}
m_web 为 WebBrowser 控件, 网页中需要获取的值用一个id表示
------解决思路----------------------
如果你不想用控件预先加载网页来获得数据
你可以将整个网页下载下来,然后自己解析xml
------解决思路----------------------
可以利用BHO技术,实时抓取页面上的关键字,然后将数据保存或发送给另外的进程
------解决思路----------------------
由于每个网页结构都不一样,没有什么通用工具,需要自己编程实现,无非是先获取HTML,再解析HTML提取出数据。
可以用WebBrowser加载网页,然后用MSHTML解析HTML提取出数据。
也可以用WinInet或WinHTTP等向WEB服务器发起GET请求获取HTML,然后用正则表达式或MSHTML提取出想要的数据。