淘宝网的链接,用后台ele.click,返回的链接没有spm参数(用来跟踪 买家来源的)
右键下任意网址也会直接变成带spm的网址,应该有在js中做了转换,可载入的js实在太多了,有哪位老大有心得帮忙指点下怎么处理,看看是换个思路,或者是直接取坐标用鼠标点?
后来我用 鼠标模拟点击(先通过获取element位置,然后滚动到 可视范围,用mouse_event模拟了鼠标的down/up事件)现在是能够进行跳转到宝贝的页面,不过还是没有带上SPM参数。
我感到非常奇怪,因为都是模拟了鼠标的行为,那么应该JS的脚本应该要跑到啊,之前有人也问到这个问题
http://bbs.csdn.net/topics/390587900
http://bbs.csdn.net/topics/390588300
其中这个哥们提到的这点非常有用
他在某功能块分一个 data-spm, 在a 标签 在mousedown 时加上 本区的 data-spm 还有其它值 但是我不知道应该怎么样才能触发脚本,添加上这个参数。非常感谢啊,各位大侠们。

解决方案 »

  1.   

    用IE10.0/11.0的F12功能,打开Profile面板,然后监视调用过的js函数。
    在这些函数中找找。
      

  2.   

    你想做象淘宝一样大的网站吗?如果不是你何必去模仿别人呢?做出你自己理解的,理论上和技术上你都可能掌握的网站.大网站确认不是一次性载入所有js文件,有些事务触发后,才加载js文件,以提高页面加载速度,临时加载js文件的可以用GetJacript()方法
      

  3.   

    spm参数是淘宝的点击日志,用来跟踪顾客浏览行为,分析点击热图的。根据我的测试,目前来说带不带spm参数都能正常浏览网页,没有什么区别。
    理论上淘宝可以根据spm参数提供的点击模式,来判断你是不是机器人。所以真正要模拟的话,应该是模拟人的网页浏览行为、习惯。只是要模拟出spm参数的话,用模拟鼠标点击(mouse_event)就可以了。
      

  4.   

    如果你用webbrowser 或插件,可以先找到A标签元素,
     A.fireEvent('onmousedown')//算出spm , 
    A.click()  //打开连接
      

  5.   

    嗯 我现在用鼠标模拟出来的话,量子一看还是直接访问,而不是正常的搜索进店。
    Cursor.Position = new Point(clientPoint.X, clientPoint.Y);
                
                //Thread.Sleep(1000);
                mouse_event(0x00000002, 0, 0, 0, UIntPtr.Zero); /// left mouse button down
                mouse_event(0x00000004, 0, 0, 0, UIntPtr.Zero); /// left mouse button up
      

  6.   

    对了 哥们,你说的要真正模拟的话,是什么意思啊?我现在是模拟出来了SPM参数,不过还是被淘宝认为是直接访问。
      

  7.   

    注入脚本,这个没有触发,不知道怎么回事啊。
    #c的控件我没用过,不过IE控件的属性都一样你参考下
    webbrowser.document.parentWindow.execScript(" alert('ok') ","javascript")
    你先确认下 加入JS有没有执行到 ,再看下A元素有没有取到
      

  8.   

    搜索宝贝后进店,最重要是想让量子数据有记录!
    这个问题如果是用webbrowser 那最好办, 我刚好前几天写了一个,运行良好,量子数据可以显示,并且可实现不重复的访客。我是用易语言实现的,下面简单说说这个过程:
    在页面 http://www.taobao.com/ 自动完成关键字的填表,然后找到搜索的button元素,然后模拟点击
    来到搜索结果页面,枚举查找 a元素,可读取href属性的值是包含自己的宝贝ID来判断是否为想要的链接,找到宝贝链接后,直接模拟点击即可跳到宝贝页面,并且是带spm参数的。我在在测试中最快平均9.6秒可模拟一次搜索进店不过这是使用webbrowser  实现的,
    后来想改为http get方式来实现,虽然抓包分析后都完成了对 cache 与 spm-cnt 的值,但却未能实现旺子数据的有效显示。还望高手指点,本人QQ:1294332623
      

  9.   


    在模拟淘宝搜索的过程中一些参数是通过js计算得到的,通过抓包分析,发现这个js最关键:
    http://a.tbcdn.cn/s/fdc/??spm.js,spmact.js?v=131014bcache与spm-cnt都是在这里计算的:cache其实是一个7位随机码: Math.floor(Math.random()*268435456).toString(16)
    spm-cnt的值: "a230r.1.0.0." + y()这个y返回六位的随机码:
    function y()
    {var a1="g_aplus_pv_id",a3="",a2="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
    if(!aw[a1])
    {
    while(a3.length<6)
    {
    a3+=a2.substr(Math.floor(Math.random()*62),1)
    }
    aw[a1]=a3}return aw[a1]
    }