问题描述
淘宝网的链接,用后台ele.click,返回的链接没有spm参数比如登录链接https://login.taobao.com/member/login.jhtml?f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F在浏览器用手动点链接带spm变成https://login.taobao.com/member/login.jhtml?spm=1.1000386.5982201.1.8Z0FfX&f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F右键下任意网址也会直接变成带spm的网址,应该有在js中做了转换,可载入的js实在太多了,有哪位老大有心得帮忙指点下怎么处理,看看是换个思路,或者是直接取坐标用鼠标点?虽然不知道这个spm值有多大用处,但少了明显不真实,高分在线等回。参考淘宝首页源码
解决方案
解决方案二:
用IEdeveloperTools调试下。你可以打开JSProfiler面板,记录下,看看怎么调用的。
解决方案三:
外部浏览器里真实用鼠标左键点击打开窗口,或者右键点一下后,超链接里多出了spm=1.1000386.5982201.1.8Z0FfX按理肯定有个js中有这个对鼠标的响应事件,一来找起来麻烦,二来找出来后添加到C#中有点困惑,我直接控制ie的,没用webbrower或者直接类似这个的获取"登录"这个元素的屏幕坐标的代码,找图之类虽然速度挺快,毕竟维护起来不靠谱,
解决方案四:
usingSystem;usingSystem.IO;usingSystem.Linq;usingSHDocVw;usingmshtml;classProgram{staticvoidMain(){varq=fromInternetExplorerprocinnewShellWindows()wherePath.GetFileName(proc.FullName).ToLower().StartsWith("iexplore")selectproc;varie=q.FirstOrDefault();if(ie==null)return;ie.Navigate("https://login.taobao.com/member/login.jhtml");ie.DocumentComplete+=ie_DocumentComplete;Console.WriteLine("Pressanykeytoexit");Console.ReadKey();}staticvoidie_DocumentComplete(objectpDisp,refobjectURL){varie=(SHDocVw.WebBrowser)pDisp;if(((string)URL).StartsWith("https://login.taobao.com/member/login.jhtml")){varusername=((IHTMLDocument2)ie.Document).all.item("TPL_username_1")asIHTMLInputElement;username.value="xxxxxx";varpassword=((IHTMLDocument2)ie.Document).all.item("TPL_password_1")asIHTMLInputElement;password.value="xxx";varsubmit=((IHTMLDocument2)ie.Document).all.item("J_SubmitStatic")asIHTMLElement;submit.click();}}}
解决方案五:
楼上的同学,我问的不是登录的代码,不是进login.jhtml填表点击,我纠结的是链接里的?spm=......,用程序click事件出来的没spm码,手动在浏览器点击的有spm码,或者手动右键链接后,链接也自动加上了spm码
解决方案六:
你举个具体例子,哪个连接有问题?什么叫用程序click事件出来的没spm码?
解决方案七:
左上角的登录
解决方案八:
很多都有这个问题的,比如这个登录链接用成程序click手动点或者用鼠标右键后
解决方案九:
顶下,自个顶起等高人
解决方案十:
看下高人怎么解决
解决方案十一:
试过,真心有些看不懂,太多太乱了,亲有时间帮我看下不,调用哪个js引用1楼devmiao的回复:
用IEdeveloperTools调试下。你可以打开JSProfiler面板,记录下,看看怎么调用的。
解决方案十二:
那就用模拟鼠标点击好了:usingSystem;usingSystem.Drawing;usingSystem.IO;usingSystem.Linq;usingSystem.Runtime.InteropServices;usingSystem.Threading;usingSystem.Windows.Forms;usingSHDocVw;usingmshtml;classProgram{[STAThread]staticvoidMain(){varie=newShellWindows().OfType<InternetExplorer>().FirstOrDefault(w=>Path.GetFileName(w.FullName).ToLower().StartsWith("iexplore"));if(ie==null)return;vardoc=ie.DocumentasIHTMLDocument3;varlink=doc.getElementsByTagName("a").OfType<IHTMLElement>().FirstOrDefault(a=>a.innerText=="登录")asIHTMLElement2;if(link==null)return;varrect=link.getBoundingClientRect();//clientrectanglevarwin=((IHTMLDocument2)doc).parentWindowasIHTMLWindow3;varpt=newPoint(rect.left+win.screenLeft,rect.top+win.screenTop);pt.Offset((rect.right-rect.left)/2,(rect.bottom-rect.top)/2);ShowWindow((IntPtr)ie.HWND,SW_SHOW);SetForegroundWindow((IntPtr)ie.HWND);Thread.Sleep(1000);varcursor=newCursor(Cursor.Current.Handle);Cursor.Position=pt;mouse_event(MOUSEEVENTF_LEFTDOWN|MOUSEEVENTF_LEFTUP,(uint)pt.X,(uint)pt.Y,0,0);}[DllImport("user32.dll",CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]publicstaticexternvoidmouse_event(uintdwFlags,uintdx,uintdy,uintcButtons,uintdwExtraInfo);[DllImport("user32.dll")]staticexternboolShowWindow(IntPtrhWnd,intnCmdShow);[DllImport("user32")]publicstaticexternintSetForegroundWindow(IntPtrhwnd);privateconstintSW_SHOW=5;privateconstintMOUSEEVENTF_LEFTDOWN=0x02;privateconstintMOUSEEVENTF_LEFTUP=0x04;}
解决方案十三:
会不会是301过去的,是的话找脚本肯定是找不到--不过楼主你在做啥呢,不会是外挂吧--或者是mt脚本?淘宝这周杀了不少号,买家号都杀这是从来没有的,千万小心啊
解决方案十四:
解决方案十五:
引用楼主novas的回复:
淘宝网的链接,用后台ele.click,返回的链接没有spm参数比如登录链接https://login.taobao.com/member/login.jhtml?f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F在浏览器用手动点链接带spm变成https://login.taobao.com/member/login.jhtml?spm=1.1000386.5982201.1.8Z0FfX&f=top&redirectURL=http%3A%2F%2Fwww.taobao.com%2F右键下任意网址也会直接变成带spm的网址,应该有在js中做了转换,可载入的js实在太多了,有哪位老大有心得帮忙指点下怎么处理,看看是换个思路,或者是直接取坐标用鼠标点?虽然不知道这个spm值有多大用处,但少了明显不真实,高分在线等回。参考淘宝首页源码
兄弟,您好,我最近也在做类似的东西,发现SPM时淘宝用来跟踪买家行为的,所以他必须要触发到。我这边也是用element.click(),来触发的,进店的来源还是直接进店,然后用模拟鼠标点击(跟帖子里面的实现差不多,多了个鼠标的随机移动,我以为是要触发mouse_move)的,也是直接进店。不知道你最后怎么解决的?感觉正如你说的,是淘宝在脚本懂了手脚,还希望你能指导下我,非常感谢啊。这问题困扰我三个多星期了。谢谢啊
解决方案:
这个问题,搞了我一个整天,终于搞定了
解决方案:
来晚了。。你搞定了接点分
解决方案:
不要积分,我要保留这个,嘿
解决方案:
http://open.taobao.com/doc/detail.htm?id=959
解决方案:
楼主问题怎样搞定的,能让链接带上spm?
解决方案:
SPM时淘宝用来跟踪买家行为的,所以他必须要触发到。
解决方案:
亲你解决额这个问题了吗我也遇到了求解
解决方案:
楼猪我建议你还是不要用这方法了。因为现在登录很多都要支付宝安全控件。(强制验证)