php抓取页面的几种方式,php采集数据的几种方式
1、使用file_get_contents获得网页源代码。这个方法最常用,只需要两行代码即可,非常简单方便。使用fopen获得网页源代码。这个方法用的人也不少,不过代码有点多。使用curl获得网页源代码。
2、用fopen打开url,以post方式获取内容。用fsockopen函数打开url,获取完整的数据,包括header和body。
3、数据导出其实就是SQL select语句啊。select * from 你的数据表 where 条件=XXX 从表里面搜索到你需要的数据,然后导出。但是导出。你要想用什么方式导出,文本,还是excel,一般上都是用excel控件导出的。
4、用php://input可以很便捷的取到原始POST数据 $HTTP_RAW_POST_DATA 仅在POST的Content-Type类型不为PHP识别时才有效 如通常通过页面表单提交后的POST数据,不能通过$HTTP_RAW_POST_DATA提取到。
5、注:即使在页面内显性地改变enctype属性为PHP不可识别的类型,仍无效。
6、因为不会浪费大量的资源用一个页面来跑一个瞬间500次的for循环了。(你的500次for循环死了原因可能是获取的数据太多,大过了php限制的内存)不过印象中curl好像也有强制同步的选项,就是等待一个抓取后再执行下一步。
Linux服务器上的php程序使用curl返回为空。
使用curl调用远程PHP文件来获取相应数据 问题 调用远程的PHP文件后,print_r($result)死活打印不出来东西。
所有如果你要得到curl_getinfo($ch)的返回结果,就必须使用对应的键,以你的代码为例,如$info[';url';],$info[';total_time';]等等opt值。
当请求服务器时但服务器没给出回复时curl会给出这样的错误,是一个http错误,可能是防火墙或其他网络原因造成的,你可以看下请求的服务器的web日志,或让相关人员查下网络原因。
你试试 // 设置curl 参数,要求结果保存到变量中还是输出到屏幕上,false直接输出到屏幕上。
尝试一下把输出文件定义为 json 文件。
php使用curl抓取一个网站的内容被拒绝
1、php调试curl错误信息的方法:使用函数【curl_errno】和【curl_error】,分别返回HTTP的错误代码和错误类别;设置【CURLOPT_VERBOSE】为true,同时将其设置为用fopen打开的一个文件。
2、这网页是用javascript获取商品信息,所以商品不会出现在html页面。用 live http header,你·会看到商品信息取自哪个url 然后$url换成以上新的url就行。
3、是http重定向地址,你在命令行wget这个地址跟踪得到跳转后的地址,直接请求跳转后地址。
4、在curl_close($curl);前面加上$error = curl_error($curl);然后打印看看有没有报错信息。另外可以在当前文件最前面加入ini_set(';display_errors';,';on';);error_reporting(E_ALL);看看运行有没有什么错误提示。
使用PHP的cURL库进行网页抓取
1、使用PHP的cURL库可以简单和有效地去抓网页。你只需要运行一个脚本,然后分析一下你所抓取的网页,然后就可以以程序的方式得到你想要的数据了。
2、php网页抓取乱码的解决办法:使用“mbconvertencoding”转换编码;设置添加“curl_setopt($ch, CURLOPT_ENCODING, ';gzip';);”选项;在顶部增加header代码。
3、curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);//设置这个选项为一个非零值(象 “Location: “)的头,服务器会把它当做HTTP头的一部分发送(注意这是递归的,PHP将发送形如 “Location: “的头)。
4、刚吃完午饭吧,来帮你实现一下吧。记得加分哦。