1. 如何提取部分网页数据
a. 使用IHTMLDocument2的getElementByTagName,不过你需要IWebBrowser2这个组件来加载网页
b. IXMLHTTPRequest读取网页数据,存入CString,再根据标查找
2. 我需要在固定时间提取网页上的相关信息. 例如:今日油假:4.90元/升
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)IWebBrowse2 得到IHTMLDocument2指针,
IHTMLDocument2指针得到IHTMLElementCollection,
IHTMLElementCollection的item方法遍历得到IHTMLElement指针,
从IHTMLElement的InnerText等方法判断是不是该链接
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/bianchengyuyan/)或者从IHTMLElementCollection的Tags方法得到所有的
3.一个自动提交网页的问题(急)
void PutIEText(IHTMLElementCollection *pobjAllElement,CString strName,CString strText)
{
CComPtrIDispatch pDisp;
pobjAllElement-item(COleVariant(strName),COleVariant((long)0),&pDisp);
CComQIPtrIHTMLElement, &IID_IHTMLElement pElement;
if(pDisp==NULL)
{
AfxMessageBox(strName + "没有找到!");
}
else
{
pElement=pDisp;
pElement-put_innerText(strText.AllocSysString());
}}
这个函数只能给input type=text ...的输入框添上信息,但是不能给selectoption的下拉框和textarea提交信息,我不知道怎么写了(不知道相关的函数方法),求相关的代码?谢谢
设置IHTMLSelectElement接口的selectedIndex属性,可以改变选中的列表项
4.bho如何获取网页元素的事件和相应属性 ,比如点击一个按钮或超链接,如何获取这一事件并获得按钮的名称或超链接的url.
我在版块里看过一些,比如有lion_wing提到的方法:
1、获得WebBrowser Control的DWebBrowserEvents2::DocumentComplete事件
2、在DWebBrowserEvents2::DocumentComplete事件中根据IWebBrowser2::Document获得HTMLDocumentEvents2::onclick事件
3、根据onclick的参数IHTMLEventObj *pEvtObj,获得相应属性。
ms-help://MS.MSDNQTR.2003FEB.2052/dnwebgen/html/bho.htm