CURL 有些无法采集

2016-01-24 22:32:58 +08:00
 mofei828
各位大神好,本人小白,没学过啥代码,求教为啥 CURL 有些网站无法采集。起初先知道的 file_get_contents 函数,但是发现请求很慢,如果同时采集好几个页面,那打开要十几秒。谷歌后又知道了 CURL 函数,可是问题又来了,有些页面可以采集,有些采集不了。百度了下说是什么要伪装、模拟、 cookie 之类的,求大神指点,能直接给出代码更好!谢谢
3007 次点击
所在节点    PHP
8 条回复
flynaj
2016-01-24 22:38:02 +08:00
就是那些了,模拟成浏览器
lxjsmdc
2016-01-24 22:48:49 +08:00
有些判了 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
2016-01-24 22:52:23 +08:00
采集延迟你用 curl 也不会有改善的,得用 stream_socket_client
eoo
2016-01-25 00:32:53 +08:00
@function007 目标主机就那鸟速度了 你用 sock..还不是龟速。
mofei828
2016-01-25 01:16:29 +08:00
@eoo 请问大神有啥其他的方法不
function007
2016-01-25 01:33:19 +08:00
@eoo 可以把请求一次发完再去拿结果,等于是并发的,长连接的复用本身除了节省 TCP 开支时间之外也可以提高传输速度
几个页面十几秒,如果是因为目标网速的限制,那服务器估计是 ADSL 拨号上网的
eoo
2016-01-25 09:13:56 +08:00
@function007 CURL 也能实现并发 和长链接,而且 socket 太过底层 你让他一个新手 去搞 为难他了。
eoo
2016-01-25 09:15:36 +08:00
@mofei828 处理速度 取决你的机器和目标机器,没啥其他方法。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/253074

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX