php curl或file_get_content抓取不到数据,该怎样处理?

seastar_cui 2017-06-03 08:31:59
自己做个了商城与食品与关,想获取国家食品与药品管理总局网站 (网址为: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分。
...全文
311 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
seastar_cui 2017-06-03
  • 打赏
  • 举报
回复
送分不成功,不知道什么原因,请版主原谅。也没有时间折腾了。再次多感谢。
seastar_cui 2017-06-03
  • 打赏
  • 举报
回复
呵呵,高手就在民间,弄一个下午加半个晚上,我自己也刚搞定,本想结贴,就有高手回复了。我自己处理方式: 原来这样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?"; $tableId="91"; $keyword="QS4306 2401 0904";$postdata = "tableId=".$tableId."&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分就全给版主了。虽然版主不缺分。就此结贴。多谢版主。
xuzuning 2017-06-03
  • 打赏
  • 举报
回复
header('Content-type: text/html;charset=utf-8');
$url = 'http://app1.sfda.gov.cn/datasearch/face3/search.jsp?tableId=91&keyword=qs4306%202401%200904';
$s = file_get_contents($url);
echo '<xmp>' , $s;
没有问题

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧