http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CFcRfH0GoT805sipKj3WFgObCOjeMxxCTFxN6Vm7j4ewiKkN9jps1h0xwpsosUSBTJl%2Bsn9DQ1mMZl%2BUXg0Gj6BRg%3D%3D打开以上的淘宝客链接,会经过跳转,最后跳到以下的链接,在asp.net里怎么取得这个链接地址
http://detail.tmall.com/item.htm?id=12730886528&ali_trackid=2:mm_26282330_0_0:1365997719_410_699961681

解决方案 »

  1.   

    用WebClient先请求第一个地址,请求得到后可以从Response的头信息中找到第二个地址。头信息的key我记不清了。你调试就可以看到。
      

  2.   

    你可以用HttpWebRequst去请求你上面的第一个地址,再他的返回头部信息里面取
    Location键的值 就是下面的地址了
      

  3.   

      获取页面 正则截取HTTP内容   里面有各种特定标签
      

  4.   

    你好,第二个地址是http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft%3Fe%3DzGU34CA7K%252BPkqB07S4%252FK0CFcRfH0GoT805sipKj3WFgObCOjeMxxCTFxN6Vm7j4ewiKkN9jps1h0xwpsosUSBTJl%252Bsn9DQ1mMZl%252BUXg0Gj6BRg%253D%253D%26ref%3D%26et%3DjFBC6en62rXa%252FA%253D%253D
    不是最终我要的哦。
    淘宝这里好像经过一个js跳转,我不知道怎么用asp.net进行跟踪
      

  5.   

    一般情况下不会用JS跳转。在后台是用的Respone.Redirect(即重定向),会在http头信息中发送5楼图片中的location信息。
    在你的代码中可以用HttpResponse.Heads["Location"]去找Location这个头信息的内容。
    PS:上面的Heads属性是我记忆中的,有可能有误,你到Response属性中找一找。
      

  6.   

    一般从SEO优化的角度来说 不建议 打开网站 之后 有自动跳转  那样会认为你是作弊
      

  7.   


    您好,淘宝真的中间有一次js跳转,所以返回的头部信息Location键是http://s.click.taobao.com/t_js,您看看是不是?
      

  8.   

    看了一下,不是JS中转,就是 Response中头信息的Locatoin
      

  9.   


                var request = HttpWebRequest.Create("http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CFcRfH0GoT805sipKj3WFgObCOjeMxxCTFxN6Vm7j4ewiKkN9jps1h0xwpsosUSBTJl%2Bsn9DQ1mMZl%2BUXg0Gj6BRg%3D%3D");
                var response = request.GetResponse();
                var url = response.Headers["Location"];
      

  10.   

    可以结贴给分了    public class GHtmlToImage
        {
            /// <summary>
            /// 地址
            /// </summary>
            private string _url = "about:blank";
            /// <summary>
            /// 宽
            /// </summary>
            private int _width = 800;
            /// <summary>
            /// 高
            /// </summary>
            private int _height = 600;
            /// <summary>
            /// 缩略图宽
            /// </summary>
            private int _swidth = 320;
            /// <summary>
            /// 缩略图高
            /// </summary>
            private int _sheight = 250;        private Bitmap _image;
            private Bitmap _thumbnailimage;
            private object _lock = new object();
            private object _lock2 = new object();
            private string _charset = "utf-8";
            public string Url
            {
                set { _url = value; }
            }
            public int Width
            {
                set { _width = value; }
            }
            public int Height
            {
                set { _height = value; }
            }
            public int SWidth
            {
                set { _swidth = value; }
            }
            public int SHeight
            {
                set { _sheight = value; }
            }
            public Bitmap Image
            {
                get { return _image; }
            }
            public Bitmap ThumbnailImage
            {
                get { return _thumbnailimage; }
            }
            public string DocText
            {
                get;
                set;
            }
            public int runtime
            {
                get;
                set;
            }
            public GHtmlToImage()
            {
                Thread.CurrentThread.CurrentUICulture =  Thread.CurrentThread.CurrentCulture;
            }
            public string Charset
            {
                set
                {
                    _charset = value; ;
                }
            }
            /*
            [STAThreadAttribute]
            static void Main()
            {
                
            }
             */ 
            public void Init()
            {
                
                lock (_lock)
                {
                    
                    Thread _thread = new Thread(new ThreadStart(_GenerateHtmlToImgImage));
                    _thread.Name = "Galsun.Fcx.htmlToImage";
                    _thread.SetApartmentState(ApartmentState.STA);
                    _thread.CurrentUICulture = Thread.CurrentThread.CurrentCulture;
                    _thread.Start();
                    _thread.Priority = ThreadPriority.Highest;
                    TimeSpan ts = new TimeSpan(0, 0, 0, 30);
                    _thread.Join();
                   
                    GC.Collect();
                    GC.Collect();
                }
            }
            [STAThread]
            private void _GenerateHtmlToImgImage()
            {
                
                Monitor.Enter(this);
                try
                {
                    #region 普通
                    WebBrowser _WebBrowser = new WebBrowser();
                    _WebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(WebBrowser_DocumentCompleted);
                    //_WebBrowser.ProgressChanged += new WebBrowserProgressChangedEventHandler(WebBrowser_ProgressChanged);
                    _WebBrowser.ScrollBarsEnabled = false;
                    
                    _WebBrowser.Navigate(_url);
                    System.Windows.Forms.Timer _tm = new System.Windows.Forms.Timer();
                    _tm.Interval=1000;
                    _tm.Tick += new EventHandler(Time_Tick);
                    _tm.Enabled = true;
                    //Application.SetCompatibleTextRenderingDefault(false);
                    Application.Run();
                    //Application.EnableVisualStyles();
                    
                    
                    _WebBrowser.Dispose();
                    
                    #endregion                #region 新模式
                    /*
                    Application.EnableVisualStyles();
                    Application.SetCompatibleTextRenderingDefault(false);
                    MainForm _form = new MainForm();
                    _form._url = _url;
                    _form._width = _width;
                    _form._height = _height;
                    _form._swidth = _swidth;
                    _form._sheight = _sheight;
                    _form.Width = _width;
                    _form.Height = _height;
                    Application.Run(_form);
                    _image = _form._image;
                    _thumbnailimage = _form._thumbnailimage;
                     */ 
                    #endregion
                }
                finally
                {
                    Monitor.Exit(this);            }
            }
            private void Time_Tick(object sender, EventArgs e)
            {
                if (runtime > 0)
                {
                    Thread.Sleep(100);
                    Application.ExitThread();
                }
            }
            private void WebBrowser_ProgressChanged(object sender, WebBrowserProgressChangedEventArgs e)
            {
                WebBrowser _webBrowser = (WebBrowser)sender;
                if (e.CurrentProgress == e.MaximumProgress && _webBrowser.ReadyState == WebBrowserReadyState.Complete)
                {
                    Application.ExitThread();
                }
            }
            private void WebBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                Monitor.Enter(this);
                try
                {
                    
                    WebBrowser _webBrowser = (WebBrowser)sender;
                    
                    if (_webBrowser.ReadyState == WebBrowserReadyState.Complete)
                    {
                        //_webBrowser.Document.Encoding = "utf-8";
                         //_charset = _webBrowser.Document.Encoding;
                         //DocText = _webBrowser.DocumentText;
                         //DocText = Encoding.GetEncoding("utf-8").GetString(Encoding.GetEncoding("gbk").GetBytes(_webBrowser.DocumentText));
                        //Content.GB2312UnicodeConverter.ToUnicode(DocText);
                        StreamReader sr;
                        sr = new StreamReader(_webBrowser.DocumentStream, Encoding.GetEncoding(_charset));
                        DocText  = sr.ReadToEnd();
                        sr.Close();
                        if(_webBrowser.Document.Body.ScrollRectangle.Height> _height)
                        {
                            _height=_webBrowser.Document.Body.ScrollRectangle.Height;
                        }
                        _webBrowser.ClientSize = new Size(_width, _height);
                        //_webBrowser.ScrollBarsEnabled = false;
                        //Application.DoEvents();
                        _image = new Bitmap(_webBrowser.Bounds.Width, _webBrowser.Bounds.Height);
                        _webBrowser.BringToFront();
                        _webBrowser.DrawToBitmap(_image, _webBrowser.Bounds);
                        _thumbnailimage = (Bitmap)_image.GetThumbnailImage(_swidth, _sheight, null, IntPtr.Zero);
                        runtime++;
                    }
                    
                }
                finally
                {
                    Monitor.Exit(this);
                }
            }    }
    string url = "http://s.click.taobao.com/t?e=zGU34CA7K%2BPkqB07S4%2FK0CFcRfH0GoT805sipKj3WFgObCOjeMxxCTFxN6Vm7j4ewiKkN9jps1h0xwpsosUSBTJl%2Bsn9DQ1mMZl%2BUXg0Gj6BRg%3D%3D";
                    GHtmlToImage _html = new GHtmlToImage();
                    _html.Url = url;
                    _html.Width = 1280;
                    _html.Height = 800;
                    _html.Charset = "gbk";
                    _html.Init();                Response.Write(Server.HtmlEncode(_html.DocText));                Response.End();
      

  11.   

    脚本就是不好弄,要通用可以模拟弄个浏览器
    要简单一点,如果是这个固定模式,可以用C#替换他脚本中的方法
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    </head>
    <body>
    <script type='text/javascript'>
    function htmlspecialchars(str){  
        str = str.replace(/</g, '&lt;');
        str = str.replace(/>/g, '&gt;');
        str = str.replace(/"/g, '&quot;');
        str = str.replace(/'/g, '&#039;');
        return str;
    }function bol(){
        if (top.location != self.location) {
            return false;
        }    var qs = location.search.split("?")[location.search.split("?").length-1].split("&");
        qso = {};
        for (var i=0; i<qs.length; i++){
            if (qs[i]!="") {
                var tmpa = qs[i].split("=");
                qso[tmpa[0]] = tmpa[1] ? tmpa[1] : "";
            }
        }
        
        var tu = unescape(qso.tu);
        if (htmlspecialchars(tu).length != tu.length) {
            exit;
        }
        
        if (qso.tu && (qso.tu.indexOf("http%3A%2F%2Fs.click.taobao.com%2F")===0
                    || qso.tu.indexOf("http%3A%2F%2Fi.click.taobao.com%2F")===0
                    || qso.tu.indexOf("http%3A%2F%2Fs.click.alimama.com%2F")===0
                    || qso.tu.indexOf("http%3A%2F%2Fitem8.taobao.com%2F")===0
                    || qso.tu.indexOf("http%3A%2F%2Fshop8.taobao.com%2F")===0)) {
            if (!window.attachEvent) {
                document.write('<input style="display:none" type="button" id="exe" value="" onclick="window.location=\''+unescape(qso.tu)+'\'">');
                document.getElementById('exe').click();
            } else {
                document.write('<a style="display:none" href="'+unescape(qso.tu)+'" id="exe"></a>');
                document.getElementById('exe').click();
            }
        }
    }//end of bol()
    bol();
    </script>
    body>
    </html>