你可以把 CURLOPT_TIMEOUT 设置长一点 curl_setopt($ch, CURLOPT_TIMEOUT, 60);然后对抓取的结果做一个判断,发现内容太少的话,让他再抓取一次。
10年积累的成都网站设计、做网站经验,可以快速应对客户对网站的新想法和需求。提供各种问题对应的解决方案。让选择我们的客户得到更好、更有力的网络服务。我虽然不认识你,你也不认识我。但先网站制作后付款的网站建设流程,更有云南免费网站建设让你可以放心的选择与我们合作。
这个要看所取数据的网站了,如果网页使用ajax等技术,那么可能取不到。如果是一般的网页,估计是你的语法有问题,最好是发一下代码看看。
就必须使用对应的键,以你的代码为例,如$info[url],$info[total_time]等等opt值。可以具体参看mixed curl_getinfo ( resource $ch [, int $opt = 0 ] )原型的第二个参数$opt的选项对应的opt键。
一般来说,PHP采集数据最简单的办法是使用file_get_content函数,功能更强大的推荐使用cURL函数库。
直接模拟链接获取百度搜索结果达到300多KB,推送到客户端浏览器即使用Gzip压缩也要100KB左右,耗时接近0s。但是百度自己的第一个get内容到浏览器只有30KB左右。怎样才能和百度一样。
使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。
curl_setopt($ch, CURLOPT_NOBODY,true); 之后 通过curl_exec函数来获取响应头信息。获取设置 curl_setopt($ch, CURLOPT_NOBODY,false);然后对curl_exec获取的值通过\r\n\r\n进行分割截取第一部分即为响应头信息。
1、获取请求头信息,可以在curl_exec函数执行前,添加代码curl_setopt($ch,CURLINFO_HEADER_OUT,true);在curl_exec函数执行后,通过 curl_getinfo($ch,CURLINFO_HEADER_OUT) 来获取curl执行请求的请求数据。
2、一种使用fsockopen,所有的头信息全部手动连接成字符串即可。一种使用curl,可以直接将头信息写成数组,调用curl_setopt设定头信息即可。
3、curl_setopt($curl, CURLOPT_NOBODY,1); //启用时将不对HTML中的BODY部分进行输出。
4、PHP curl可以从服务器端模拟一个http请求,例如抓取网页、模拟登陆等。根据选项设置,可以在curl_exec的返回结果中获取到响应头和body,但这没有响应的状态吗。