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
http://detail.tmall.com/item.htm?id=12730886528&ali_trackid=2:mm_26282330_0_0:1365997719_410_699961681
Location键的值 就是下面的地址了
不是最终我要的哦。
淘宝这里好像经过一个js跳转,我不知道怎么用asp.net进行跟踪
在你的代码中可以用HttpResponse.Heads["Location"]去找Location这个头信息的内容。
PS:上面的Heads属性是我记忆中的,有可能有误,你到Response属性中找一找。
您好,淘宝真的中间有一次js跳转,所以返回的头部信息Location键是http://s.click.taobao.com/t_js,您看看是不是?
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"];
{
/// <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, '<');
str = str.replace(/>/g, '>');
str = str.replace(/"/g, '"');
str = str.replace(/'/g, ''');
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>