php curl或file

自己做个了商城与食品与关,想获取国家食品与药品管理总局网站 (网址为:http://www.sfda.gov.cn/ws01/cl0001/)食生生产许可证编码,经过折腾通过这种方式获取到数据 例如:http://app1.sfda.gov.cn/datasearch/face3/search.jsp?tableid=91&keyword=qs4306 2401 0904 。但是此网站不知道做了什么限制,curl,file_get_content各种方式都限制了,不知道该用什么方法才能获取到,请高手测试以后,回复。多谢。满意全部分送上。140分。

回复讨论(解决方案)

header(‘content-type: text/html;charset=utf-8’);
$url = ‘http://app1.sfda.gov.cn/datasearch/face3/search.jsp?table;
$s = file_get_contents($url);
echo ” , $s;
没有问题

呵呵,高手就在民间,弄一个下午加半个晚上,我自己也刚搞定,本想结贴,就有高手回复了。我自己处理方式:

原来这样http://app1.sfda.gov.cn/datasearch/face3/search.jsp?tableid=91&keyword=qs4306%202401%200904提交数据是我自己在这个网站上摸索出来的。但是我自己试了都没有弄成功。后来继续搜索发现了问题,这样处理不规范。

通过修改这样才对。

$url = “http://125.35.6.7/datasearch/face3/search.jsp?”;

$table;

$keyword=”qs4306 2401 0904″;$postdata = “table&keyword=”.$keyword; //请求的数据,以 & 符号分割

$curl = curl_init(); //开启curl

curl_setopt($curl, curlopt_url, $url); //设置请求地址

curl_setopt($curl, curlopt_returntransfer, 1); //是否输出 1 or true 是不输出 0 or false输出

curl_setopt($curl, curlopt_post, 1); //是否使用post方法请求

curl_setopt($curl, curlopt_postfields, $postdata); //post数据

echo $data = curl_exec($curl); //执行curl操作

curl_close($curl);

这样才对,虽是乱码,但总是弄出来,再想办法处理乱码。

相信此方法对于那些限制抓取网站可能会有帮助。

原来是版主给回复的。不管怎样说话算话,140分就全给版主了。虽然版主不缺分。就此结贴。多谢版主。

Posted in 未分类

发表评论