[PHP] 纯文本查看 复制代码function http_request($url, $info = False)
{
[/quote]
[size=3][color=#ff0000]file_get_content+curl 也可行的,单用curl效率比较高还可以配置超时,我也做了个返利程序,之前也遇到了这个问题(我是PY解决的,那个比较简单),推广地址第一次请求是一个空白页面,里面存在一次js内做再次请求,还是PDD跟TB比较好处理[/color][/size]
[mw_shl_code=php,true]
$url='https://u.jd.com/QMQzfr2';
$ch1= curl_init();
curl_setopt ($ch1, CURLOPT_URL, $url);
curl_setopt ($ch1, CURLOPT_RETURNTRANSFER, 1);
curl_setopt ($ch1, CURLOPT_CONNECTTIMEOUT, 10); //超时设置(CURLOPT_TIMEOUT两者的区别就不解释了)
$file_contents= curl_exec($ch1); //url第一次返回的html页面内容
//curl_close($ch1); //会话结束(自己看情况,测试过程直接注释掉了)
$url1 = strstr($file_contents, 'https://u.jd.com/jda'); //获取字符串url相关内容
$url2 = strstr($url1, 'QMQzfr2',1).'QMQzfr2'; //QMQzfr2 短链接代码向上截取(QMQzfr2怎么取就不多解释了)
$ch2 = curl_init();
curl_setopt($ch2, CURLOPT_URL, $url2);
curl_setopt($ch2, CURLOPT_HEADER, 0);
curl_setopt($ch2, CURLOPT_RETURNTRANSFER, 1);
//若给定url自动跳转到新的url,有了下面参数可自动获取新url内容:跟踪爬取重定向页面 302 303 (无视即可)
curl_setopt($ch2, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch2, CURLOPT_TIMEOUT, 10); //设置cURL允许执行的最长秒数
curl_exec($ch2);
$headers = curl_getinfo($ch2);
//curl_close($ch2); //会话结束(自己看情况,测试过程直接注释掉了)
print_r($headers);