在看curl的相关的东西
我看到别人说要伪造来路
就是请求头的REFERER 设置成别人的网站这样做有什么好处吗????还有  其他的请求头需要去手动修改吗比如
User-Agent: 
Accept: 
Accept-Language:
这些请求头  有必要自己设下吗cookie
我是请求静态文件(比如图片 js css),的到cookie  在生成header头  去请求真实想请求的地址  一般各位是怎么得到cookie的....

解决方案 »

  1.   

    不伪造来路,你尝试一下去新浪博客下载图片看看能不能成功?
    不过好久没去下图了,不知道他们策略有没有改User-Agent: 
    Accept: 
    Accept-Language:
    三个都没有,你试试去get网易首页……cookie一般登录才需要,我懒得写程序走两步,直接在浏览器里面copy,保存到ini读取
      

  2.   

    是否欺骗只是观点角度问题
    在技术角度看,只是写了个命令行“浏览器”,没有浏览全部的内容而已——浏览想看的东西(不需要css,不需要js,不需要广告),就算登录也是用自己的帐号,没有盗用别人的帐号所做的一切只是省略点击操作说白了只是用计算器代替算盘加速而已从结果论,只要不是挪作他用,纯个人使用就说不上欺骗
    如果抓到东西并拿去卖钱或获得其他利益,那就另当别论——例如抓人家的数据在自家网站显示
      

  3.   


    不久用了gzip吗?一般加上CURLOPT_ENCODING,CURLOPT_COOKIEFILE, CURLOPT_COOKIEJAR 这3项,什么网页都可以get
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, 'http://www.163.com');
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_HEADER, true);
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION,1);
    curl_setopt($ch, CURLOPT_ENCODING, gzip);
    curl_setopt($ch, CURLOPT_COOKIEJAR, "cookie.txt");
    curl_setopt($ch, CURLOPT_COOKIEFILE, "cookie.txt");
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11');
    $htmls = curl_exec($ch);
    curl_close($ch);
    echo $htmls.'<hr />';HTTP/1.1 200 OK Expires: Fri, 25 Jan 2013 13:47:28 GMT Date: Fri, 25 Jan 2013 13:46:08 GMT Server: nginx Content-Type: text/html; charset=GBK Transfer-Encoding: chunked Vary: Accept-Encoding,User-Agent,Accept Cache-Control: max-age=80 Content-Encoding: gzip Age: 1 X-Via: 1.1 gdzj27:8080 (Cdn Cache Server V2.0), 1.1 gdcz24:8361 (Cdn Cache Server V2.0) Connection: keep-alive
      

  4.   

    关键不是encoding,是accept,如果没有accept,我记得网易首页是跳转到出错页面的
    我之前研究chunked的数据结构,向网易请求过上百次……去年sina一段时间我用firefox x64去就跳到wap版,明显是做了agent判断,但没有识别出x64 nightly所以header内容未必都有用,视乎网站怎样取决,例如很多日本网站是拒绝Accept-Language:zh-cn/tw/hk的(返回403),这个在大陆台湾网站却很少见这样用来拒绝其他语言
      

  5.   

    没研究那么深,还是找个例子实地模拟一下,看看能不能get到数据。
      

  6.   


    你去掉
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11');
    试试就是跳到3g的网页去了
    User-Agent  不就是设置请求头的客户端浏览器信息吗.......