PHP-如何采集这个url跳转内容呢

PHP-如何采集这个url跳转内容呢

浮生未歇 发布于 2016-12-11 字数 136 浏览 1081 回复 3

如何采集这个url跳转内容呢

http://s.click.taobao.com/t_9?p=mm_0_0_0&l=http%3A%2F%2F3c.tmall.com

php asp 都可以

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

晚风撩人 2017-09-17 3 楼

<?php
$url = "http://s.click.taobao.com/t_9?p=mm_0_0_0&l=http%3A%2F%2F3c.tmall.com";

// 创建一个cURL资源
$ch = curl_init();

// 设置URL和相应的选项
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

// 第一次获取
curl_exec($ch);

// redirect_url
if(!curl_errno($ch)) {
$info = curl_getinfo($ch);
// 获取跳转的url
if(isset($info['redirect_url'])) {
$querys = array();
parse_str(parse_url($info['redirect_url'], PHP_URL_QUERY), $querys);
if(isset($querys['tu'])) {
curl_setopt($ch, CURLOPT_URL, $querys['tu']);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // 允许跳转
curl_setopt($ch, CURLOPT_MAXREDIRS, 3);
curl_setopt($ch, CURLOPT_REFERER, $info['redirect_url']);
$result = curl_exec($ch);
print_r($result); // 这里输出的就是最终结果
}

}
}

// 关闭cURL资源,并且释放系统资源
curl_close($ch);

瑾兮 2017-05-09 2 楼

这个链接跳转过程是这样的:
第1步: http://s.click.taobao.com/t_9?p=mm_0_0_0&l=http%3A%2F%2F3c.tmall.com
第2步: http://s.click.taobao.com/t_js?tu=http%3A%2F%2Fs.click.taobao.com%2Ft_9%3Fp%3Dmm_0_0_0%26l%3Dhttp%253A%252F%252F3c.tmall.com%26ref%3D%26et%3DjFBB2s50lFpgLg%253D%253D
第3步: http://3c.tmall.com/?ali_trackid=2:mm_0_0_0:1354708376_4k9_1111452281

很明显, 第3个页面是第2个中转页面利用第1个网址传过来的参数计算后跳转的, 自己可以弄明白第2个页面的算法, 计算出第3个页面, 直接采集第3个页面内容即可

晚风撩人 2016-12-12 1 楼

测试了下,直接用file_get_contents('http://s.click.taobao.com/t_9?p=mm_0_0_0&l=http%3A%2F%2F3c.tmall.com'); 也可以的吧