如何用php获取http://c.b1za.com/h.2SXXls?cv=nXP87fAkEx&sm=0d941d的最后网址?

jiumei
  • 8

1、如何用php获取http://c.b1za.com/h.2SXXls?cv=nXP87fAkEx&sm=0d941d的最后网址?
最后地址为:https://detail.tmall.com/item.htm?id=37424802695(这个地址是在浏览器中复制的,现在需要用php代码实现)。
2、自己尝试代码如下:

$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 1);
curl_setopt($curl, CURLOPT_NOBODY,1);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$content=curl_exec($curl);
$headerStr=curl_getinfo($curl);
curl_close($curl);
print_r($headerStr);

返回的结果是:

Array ( [url] => http://c.b1za.com/h.2SXXls?cv=nXP87fAkEx&sm=0d941d [content_type] => text/html;charset=UTF-8 [http_code] => 200 [header_size] => 207 [request_size] => 81 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 0.219 [namelookup_time] => 0 [connect_time] => 0.11 [pretransfer_time] => 0.11 [size_upload] => 0 [size_download] => 2554 [speed_download] => 11662 [speed_upload] => 0 [download_content_length] => -1 [upload_content_length] => 0 [starttransfer_time] => 0.219 [redirect_time] => 0 ) 

通过火狐抓包发现,location中的地址就是我所需要的地址,而结果中却没有location信息。
3、还请大神们帮帮忙,非常感谢!

回复
阅读 3.8k
3 个回答

有一个替代的方法,就是把页面的内容获取到,里面有一个url的js变量,那个就是你要的值

memory050
  • 544

看了一下,目标js代码里有个url变量
你用正则匹配到那个url再去抓那个地址,里面含有location

st=>start: http://c.b1za.com***
op=>operation: http://a.m.taobao.com***
e=>end: http://item.taobao.com***

st->op->e

有两次跳转,第一次是js,第二次是Location

宣传栏