V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
mofei828
V2EX  ›  PHP

CURL 有些无法采集

  •  
  •   mofei828 · Jan 24, 2016 · 3666 views
    This topic created in 3749 days ago, the information mentioned may be changed or developed.
    各位大神好,本人小白,没学过啥代码,求教为啥 CURL 有些网站无法采集。起初先知道的 file_get_contents 函数,但是发现请求很慢,如果同时采集好几个页面,那打开要十几秒。谷歌后又知道了 CURL 函数,可是问题又来了,有些页面可以采集,有些采集不了。百度了下说是什么要伪装、模拟、 cookie 之类的,求大神指点,能直接给出代码更好!谢谢
    8 replies    2016-01-25 09:15:36 +08:00
    flynaj
        1
    flynaj  
       Jan 24, 2016 via Android
    就是那些了,模拟成浏览器
    lxjsmdc
        2
    lxjsmdc  
       Jan 24, 2016
    有些判了 UA
    curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36 SE 2.X MetaSr 1.0');

    有些还判了 REF
    function007
        3
    function007  
       Jan 24, 2016
    采集延迟你用 curl 也不会有改善的,得用 stream_socket_client
    eoo
        4
    eoo  
       Jan 25, 2016 via Android
    @function007 目标主机就那鸟速度了 你用 sock..还不是龟速。
    mofei828
        5
    mofei828  
    OP
       Jan 25, 2016
    @eoo 请问大神有啥其他的方法不
    function007
        6
    function007  
       Jan 25, 2016
    @eoo 可以把请求一次发完再去拿结果,等于是并发的,长连接的复用本身除了节省 TCP 开支时间之外也可以提高传输速度
    几个页面十几秒,如果是因为目标网速的限制,那服务器估计是 ADSL 拨号上网的
    eoo
        7
    eoo  
       Jan 25, 2016 via Android
    @function007 CURL 也能实现并发 和长链接,而且 socket 太过底层 你让他一个新手 去搞 为难他了。
    eoo
        8
    eoo  
       Jan 25, 2016 via Android
    @mofei828 处理速度 取决你的机器和目标机器,没啥其他方法。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   1423 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 36ms · UTC 16:47 · PVG 00:47 · LAX 09:47 · JFK 12:47
    ♥ Do have faith in what you're doing.