php的curl如何获取一个跳转页面后的数据啊

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了php的curl如何获取一个跳转页面后的数据啊相关的知识,希望对你有一定的参考价值。

php的curl如何获取一个跳转页面后的数据啊?
就比如一个页面的连接点进去后,会跳转到另一个页面,让你下载,怎么获取这个下载的数据呢?
是在curl_setopt里面设置吗?具体怎么设置啊?
比如http:??www>guokr>com?rss? //知道不支持提供连接,要审核,好久,我也没办法,把 ? 改 / ,把 > 改 . 就是原来的连接了

参考技术A 可能要先判断php的真实返回地址,php 这个函数get_headers 判断URL是否有效的,可以返回真正的url真实下载地址 参考技术B curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);追问

我提问的这个网址还是没办法取得文件,你能帮我看看吗?

追答

获取文件直接上
$file=file_get_contents('http://www.guokr.com/rss/')
直接获取整个网页,保存为字符串,方便处理

追问

$file=file_get_contents('http://www.guokr.com/rss/');

取出的值为It works!为我自己apache的首页,可是他这个页面的数据下载后用记事本打开里面的值绝对不是It works!,我之前用fopen打开也是It works!,所以才尝试使用curl,所以求大神指教,这个网址貌似IE可以直接打开,像360就是弹出下载

追答


终于实现了,果壳用了防机器人抓取机制,判断header的user-agent来判断用户是否是通过浏览器浏览,太傻逼了,我搞我半天,以为他是通过cookie来识别用户的,因为我抓包的时候,没cookie的时候会重定向,再获取cookie了再请求.有cookie的时候不会重定向,害得我傻逼了一回,最后换了思路,原来这么简单.
如果不直接输出需要处理的话curl_setopt里的CURLOPT_RETURNTRANSFER 设置成true.

本回答被提问者和网友采纳

php curl 302问题

curl 访问网站回到302,跳转到登录页面,但是不跳,curl执行返回为空

  有时候我们需要获取curl 302正在跳转的网址,一般我们是无法获取的,只能让他自动跳转或手动跳转,有些服务器也不支持curl自动跳转。
  所以我们才想方法让他返回需要跳转的网址。
  网上找了很久,也没有相关的答案。
  然后再想想CURL有一个可以显示HEADER的参数。
  我们可以使用HEADER参数返回将要被跳转网址,通过以下CURL函数可以实现Curl POST 302自动跳转获取URL方法
参考技术A CURLOPT_FOLLOWLOCATION

以上是关于php的curl如何获取一个跳转页面后的数据啊的主要内容,如果未能解决你的问题,请参考以下文章

PHP 用CURL POST后获取cookis并跳转到另一个页面

php如何获得登录后的cookie

php curl 302问题

php curl 请求302跳转页面

php curl 模拟post表单向提交数据

如何通过php的curl模拟ajax请求,获取其返回值