需求:我用C#代码怎么通过第一个url得到第二个url
这是个重定向的链接,并且要获取到你要的那个链接需要跳转3次,一次302,一次js跳转,再302即可获取目标。
2楼的方法是可行的,只是没说到点子上。使用HttpWebRequest 去请求这个连接。必须设HttpWebRequest的AllowAutoRedirect属性为false。这样HttpWebRequest就不会去自动重定向。请求完成之后可以在响应头中获取Location即可获取到链接1。
拿链接1再去请求,获取网页内容。拿到内容之后这步比较复杂,你需要分析js,并按照js的算法生成链接2.用HttpWebRequest去请求链接2,请求完成之后可以在响应头中获取Location即是你需要的链接。
我估计你很难用HttpWebRequest实现,简单点的方法就是webbrowser控件,待相应完成的时候,获取他的Url属性就行了。
其实你就是想获取他后面的ID,分析它URL的变化规律然后改变URL参数。
分析太复杂,我就希望有没有一个方法去请求下这个url,然后返回新的url
使用HttpWebRequest访问一下,然后获取返回的数据中的url
我试了代码是这样的
WebRequest wr = WebRequest.Create(clickUrl); WebResponse wp = wr.GetResponse(); Uri url = wp.ResponseUri;
监视了下url的成员,没有我要的数据,不知道代码有没有错误,求指教
@艾编程: 这个地址返回的是一个302,所以,你应该读取location中的值
@sinhbv: 额,不懂,能帮忙给两句代码否
@艾编程: 查看header中的Location
@sinhbv: 按你说的,获取的值为null,什么情况
@艾编程: 忘了淘宝有一些防抓的机制,直接这些访问的话,拿不到正确的数据。要抓取数据的话,还是用casperjs比较好。
URL中的ID等信息 被JS中的escape()函数编码了,
用unescape() 函数可对通过 escape() 编码的字符串进行解码即可
希望用C#代码去解析出来
先解码原始url,然后分解querysting,再分析javascript加密步骤,用c#拼出最终地址
没有web和js,纯C#后台代码
@艾编程: 就是纯C#呀,你得分析taobao的js源码呀,你上面每个步骤你都得分析,然后用C#实现
@沧海一杰: oh my god
你还不如去看淘宝API文档。。有C#的 open.taobao.com
System.Web.HttpUtility.UrlDecode(Url);