苏飞论坛

 找回密码
 马上注册

QQ登录

只需一步,快速开始

分布式系统框架(V2.0) 轻松承载百亿数据,千万流量!讨论专区 - 源码下载 - 官方教程

HttpHelper爬虫框架(V2.7-含.netcore) HttpHelper官方出品,爬虫框架讨论区 - 源码下载 - 在线测试和代码生成

HttpHelper爬虫类(V2.0) 开源的爬虫类,支持多种模式和属性 源码 - 代码生成器 - 讨论区 - 教程- 例子

查看: 6799|回复: 6

[求助] 又是一个JS调用的问题,求助!

[复制链接]
发表于 2015-1-14 12:56:13 | 显示全部楼层 |阅读模式
本帖最后由 howzew 于 2015-1-14 12:58 编辑

做一个模拟登陆的小程序
分析页面的时候,发现在页面中,点击登陆按钮后,会调用js代码,并且生成一些随机的东西提交到下一个页面。

[HTML] 纯文本查看 复制代码
<form id="command" name="form1" action="/IDMSWebAuth/authenticate" method="post"  onsubmit=" return submitOnce(event); setFDC(); ">
<input id="iForgotNewWindowVar" name="openiForgotInNewWindow" value="false" type="hidden" value="false"/>
<input id="fdcBrowserData" name="fdcBrowserData" type="hidden" value=""/> 
</form>

提交的时候,调用了setFDC()这个方法,通过分析,发现这个方法存在于A.js这个文件中
[JavaScript] 纯文本查看 复制代码
function setFDC(){
        dcHelper.setData("fdcBrowserData");
}


接着分析dcHelper.setData()这个函数
发现来自于B.js文件中


[JavaScript] 纯文本查看 复制代码
window.dcHelper = new function () {
        this.setData = function (c) {
                var b;
                a : {
                        b = document.getElementById(c);
                        if ("undefined" === typeof b || null === b) {
                                var a = document.getElementsByName(c);
                                "undefined" !== typeof a && (null !== a && 0 < a.length) && (b = a[0])
                        }
                        if ("undefined" === typeof b || null === b)
                                for (var a = 0, e = document.forms.length; a < e; a++)
                                        for (var d = 0, f = document.forms[a], h = f.elements.length; d < h; d++) {
                                                var g = f[d];
                                                if (g.name === c) {
                                                        b = g;
                                                        break a
                                                }
                                        }
                }
                "undefined" !== typeof b && null !== b && (a = null, "undefined" !== typeof appidmsparm && null !== appidmsparm &&
                        (appidmsparm.appidmsform(c), null !== b.value && (a = b.value)), b.value = this.getData(a))
        };
        this.getData = function (c) {
                var b = {};
                b.U = navigator.userAgent;
                b.L = window.navigator.language ? window.navigator.language : navigator.browserLanguage ? navigator.browserLanguage : "";
                var a;
                a = (new Date).getTimezoneOffset();
                if ("number" !== typeof a || null === a)
                        a = "";
                else {
                        var e = Math.abs(parseInt(a / 60, 10)),
                        d = Math.abs(a % 60);
                        a = "GMT" + (0 < a ? "-" : "+") + (10 > e ? "0" + e : e) + ":" + (10 > d ? "0" + d : d)
                }
                b.Z = a;
                b.V = "1.1";
                "undefined" !== typeof c && null !== c && (b.F = c);
                return JSON.stringify(b)
        }
};


像这种情况,我该如何在提交的时候,获取由js生成的数据呢(js生成的东西在下个页面post时需要用到)。






1. 开通SVIP会员,免费下载本站所有源码,不限次数据,不限时间
2. 加官方QQ群,加官方微信群获取更多资源和帮助
3. 找站长苏飞做网站、商城、CRM、小程序、App、爬虫相关、项目外包等点这里
发表于 2015-1-14 13:03:54 | 显示全部楼层
执行JS获取,或者分析算法
 楼主| 发表于 2015-1-14 13:47:58 | 显示全部楼层
站长苏飞 发表于 2015-1-14 13:03
执行JS获取,或者分析算法

这种用到两个js文件的,该如何执行获取呢?我在winform中按照您的《根据传入的JS方法名和参数执行JavaScript》无法执行哇。
发表于 2015-1-14 13:51:26 | 显示全部楼层
看下你怎么写的执行代码,两个文件就直接合成一个不就行了,一个文件又不会限制大小
 楼主| 发表于 2015-1-14 14:15:48 | 显示全部楼层
站长苏飞 发表于 2015-1-14 13:51
看下你怎么写的执行代码,两个文件就直接合成一个不就行了,一个文件又不会限制大小

代码如下:
[C#] 纯文本查看 复制代码
            string strjs = string.Empty;
            using (StreamReader sr = new StreamReader(@"C:\Users\user\Desktop\common.js"))
            {
                strjs = sr.ReadToEnd();
            }

            string fdc = HttpHelper.JavaScriptEval(strjs, "setFDC()");

            textBox1.AppendText(fdc);


运行后抛异常
“System.Reflection.TargetInvocationException”类型的未经处理的异常在 mscorlib.dll 中发生

QQ截图20150114141529.jpg

发表于 2015-1-14 16:00:56 | 显示全部楼层
应该是是jS文件有问题
 楼主| 发表于 2015-1-14 16:03:20 | 显示全部楼层
站长苏飞 发表于 2015-1-14 16:00
应该是是jS文件有问题

我把开头我提到的A.js和B.js提供上来,老大能否帮忙看看哇,感谢!
A.js (21.59 KB, 下载次数: 27)
您需要登录后才可以回帖 登录 | 马上注册

本版积分规则

QQ|手机版|小黑屋|手机版|联系我们|关于我们|广告合作|苏飞论坛 ( 豫ICP备18043678号-2)

GMT+8, 2024-12-27 05:03

© 2014-2021

快速回复 返回顶部 返回列表