博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
网页抓取JAVASCRIPT处理
阅读量:7094 次
发布时间:2019-06-28

本文共 1666 字,大约阅读时间需要 5 分钟。

在抓取网页过程中,很多网页内容都预先存储到JAVASCRIPT变量中,如果仅通过SUBSTRING 进行截取分析,效率慢,错误率多。

如何才能更好的解决呢?用MSScriptControl

 

在C#中,我们也可以通过Com组件来执行一段javascript代码。

下面的代码展示了如何用MSScriptControl 组件执行一段数学表达式:

   MSScriptControl.ScriptControlClass sc = new MSScriptControl.ScriptControlClass();

   sc.Language = "javascript";
   object obj = sc.Eval(" 1 + 2 * (3 + 4)");
   Console.WriteLine(obj);

要使用MSScriptControl需要引用com组件 Microsoft Script Control 1.0。

上篇文章已经详细说明了,当然代码有部分错误 “MSScriptControl.IScriptControl.Timeout”与“MSScriptControl.DScriptControlSource_Event.Timeout”之间存在二义性

原代码:

 

/// <summary>

/// 获取或设置脚本执行时间,单位为毫秒

/// </summary>

public int Timeout

{

            get { return this.msc.Timeout; }

            set { this.msc.Timeout = value; }

}

修改为:

 

        /// <summary>

        /// 获取或设置脚本执行时间,单位为毫秒

        /// </summary>

        public int Timeout

        {

 

            get { return ((IScriptControl)this.msc).Timeout; }

            set { ((IScriptControl)this.msc).Timeout = value; }

 

        }

即可,测试可以使用,这样进行抓取数据更加方便简介,直接让JS输出结果就好了。

结合一些技术可以做很多东西如:

1、ALEXA排名作弊,EXE执行处理后进行POST,或者申请一个证书进行页面处理,数据跟真实

2、一些点击或者展示广告作弊,原理同上,结合ACTIVEX插件,效果不错

 ActiveX是Microsoft对于一系列策略性面向对象程序技术和工具的称呼,其中主要的技术是组件对象模型(COM)。在有目录和其它支持的网络中,COM变成了分布式COM(DCOM)。在创建包括ActiveX程序时,主要的工作就是组件,一个可以自足的在ActiveX网络(现在的网络主要包括Windows和Mac)中任意运行的程序。这个组件就是ActiveX近控件。ActiveX是Microsoft为抗衡Sun Microsystems的JAVA技术而提出的,此控件的功能和JAVA applet功能类似。 

 

  如果您使用的是Windows操作系统,您或许会注意到一些以OCX结尾的文件。OCX代表“对象链接与嵌入控件”(OLE),这个技术是Microsoft提出的程序技术,用于处理桌面文件的混合使用。现在COM的概念已经取代OLE的一部分,Microsoft也使用ActiveX控件代表组件对象。 

 

  组件的一大优点就是可以被大多数应用程序再使用(这些应用程序称为组件容器)。一个COM组件(ActiveX控件)可由不同语言的开发工具开发,包括C++和Visual Basic或PowerBuilder,甚至一些技术性语言如VBScript。 

 

  目前,ActiveX控件在Windows 95/NT和Macintosh中运行,Microsoft还准备支持UNIX的ActiveX控件。

转载于:https://www.cnblogs.com/daretodream/archive/2010/08/10/1796589.html

你可能感兴趣的文章
[转]XBRL应用软件分类
查看>>
C++ 文件的复制、删除、重命名
查看>>
Oracle Patch Set Update and Critical Patch Update April 2011 Released
查看>>
hdu 2189
查看>>
std::map, std::multimap, std::tr1::unordered_map 区别 - 笔记本 - 博客频道 - CSDN.NET
查看>>
/usr/bin/ld: cannot find -lxxx问题总结
查看>>
C 语言 restrict 关键字的使用
查看>>
ASP.NET 自定义成员资格提供程序 Part.4(使用自定义提供程序类)
查看>>
ASP.NET调用V3版本的Google Maps API
查看>>
苹果面试8大难题及答案
查看>>
.NET:动态代理的 “5 + 1” 模式
查看>>
《Java Concurrency》读书笔记,Java并发编程实践基础
查看>>
jQuery 2.0.3 源码分析Sizzle引擎 - 超级匹配
查看>>
ubuntu中查看各种设备和资源的命令汇总
查看>>
Chrome好用的扩展插件
查看>>
封装jQuery Validate扩展验证方法
查看>>
轮播组件iceSlider
查看>>
Spark编程指南
查看>>
python入门语法总结 zz
查看>>
Android之代码创建布局
查看>>