Web脚本执行器

在Web2.0 流行的今天,很多应用都采用了Ajax 技术,使得很多数据并不是源码本身说显示的内容。

比如Html源码里看到的是:

<mce:script type="text/javascript"><!-- document.write("/u60A8/u597D!"); // --></mce:script>

在页面上显示的是 “您好!".

 

可见通过后台抓取源码的方式肯定是不能拿到正确内容的。

 

先看结果,附件是本人开发的一个脚本执行器,可以往打开的页面里注入一段script,影响的当然只能是本机,所以不能算是病毒或者流氓软件。

点击这里下载。

 

实现的原理是这样的:

1. 当IE 加载完网页后,会触发一个事件。

 

void CTaobaoMiningDlg::OnDocumentComplete(LPDISPATCH pDisp, LPCTSTR szUrl) { CString url; GetCurrentUrl(url); if (m_working){ doScript(FALSE,url,szUrl); }

2. 在这个事件里,加载脚本,并通过Document对象去执行

void CTaobaoMiningDlg::doScript(BOOL first,CString url,CString url1) { if (!m_script.IsEmpty()){ IHTMLDocument2* pHD2=NULL; GetDHtmlDocument(&pHD2); IHTMLWindow2 *win; if (pHD2){ pHD2->get_parentWindow(&win); if (win) { CString script; //::AfxMessageBox(runtime); CComBSTR bstrScript= ::SysAllocString(runtime.GetBuffer()); CComBSTR bstrLanguage = L"javascript"; VARIANT vEmpty = {0}; HRESULT ret=win->execScript(bstrScript,bstrLanguage,&vEmpty); if(ret!=S_OK){ ::AfxMessageBox(_T("加载出错,请重新刷新页面"),MB_OK); } } } } }

 

3. 脚本运行后,就可以拿到网页上的任何内容了。

Web脚本执行器_第1张图片

 

 

实现的原理,类似于 firefox 下的 GreaseMonkey 插件。

 

利用这个原理,本人帮朋友开发了一款针对淘宝数据的免费挖掘机,有兴趣的朋友可以点击这里下载,欢迎任何建议和意见。

 

你可能感兴趣的:(JavaScript,Web,Ajax,脚本,url,firefox)