首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

请教如何获取网址

2013-04-20 
请问怎么获取网址http://s.click.taobao.com/t?ezGU34CA7K%2BPkqB07S4%2FK0CFcRfH0GoT805sipKj3WFgObCOje

请问怎么获取网址

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

[解决办法]
看了一下,不是JS中转,就是 Response中头信息的Locatoin
[解决办法]

            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"];
[解决办法]
可以结贴给分了

    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();



[解决办法]
脚本就是不好弄,要通用可以模拟弄个浏览器
要简单一点,如果是这个固定模式,可以用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>

热点排行