各位大神好,本人小白,没学过啥代码,求教为啥 CURL 有些网站无法采集。起初先知道的 file_get_contents 函数,但是发现请求很慢,如果同时采集好几个页面,那打开要十几秒。谷歌后又知道了 CURL 函数,可是问题又来了,有些页面可以采集,有些采集不了。百度了下说是什么要伪装、模拟、 cookie 之类的,求大神指点,能直接给出代码更好!谢谢
1
flynaj Jan 24, 2016 via Android
就是那些了,模拟成浏览器
|
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 |
3
function007 Jan 24, 2016
采集延迟你用 curl 也不会有改善的,得用 stream_socket_client
|
4
eoo Jan 25, 2016 via Android
@function007 目标主机就那鸟速度了 你用 sock..还不是龟速。
|
6
function007 Jan 25, 2016
@eoo 可以把请求一次发完再去拿结果,等于是并发的,长连接的复用本身除了节省 TCP 开支时间之外也可以提高传输速度
几个页面十几秒,如果是因为目标网速的限制,那服务器估计是 ADSL 拨号上网的 |
7
eoo Jan 25, 2016 via Android
@function007 CURL 也能实现并发 和长链接,而且 socket 太过底层 你让他一个新手 去搞 为难他了。
|