解决这类问题需要研究浏览器控制台里的网络请求信息,建议使用火狐浏览器Firebug扩展
会比较方便一些。
关于此类问题的解决请参考我的博客《PHP cURL实现模拟登录与采集使用方法详解》
http://www.zjmainstay.cn/php-curl
补充:
测试代码如下,本地测试可以,阿里云测试失败。
怀疑网站有针对区域性ip做限制的情况,这种情况请试用代理实现采集。
$url = 'http://cx.xtbus.com:83/gpsSelectLineDirect.action?gps_line_id=0103&gps_line_name=33C2B7';
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); //返回数据不直接输出
curl_setopt($ch, CURLOPT_ENCODING, "gzip"); //指定gzip压缩
$content = curl_exec($ch); //执行并存储结果
curl_close($ch);
echo $content;
除了楼上说的,采集不了还可能是
协议头的 user-agent需要填写浏览器信息
协议头 host 主机名 将对方的域名填写上
协议头 referer 来源地址填写
还要注意301跳转 有时候甚至是3-4层的301,需要层层获取location地址。
有时候可能也需要提交cookie请求。
楼主的url在图片里,我懒得去看,大概说说可能出现的问题,不对的地方请包含。
把链接发来我看看ghb321@qq.com