php 循环抓取网页内容(PHPcurl实现抓取302跳转后页面的相关知识和一些实例)

优采云 发布时间: 2021-09-28 21:09

  php 循环抓取网页内容(PHPcurl实现抓取302跳转后页面的相关知识和一些实例)

  想知道PHP curl 302跳转后如何抓取页面的例子的相关内容吗?本文将向大家讲解PHP curl抓取302跳转后页面的相关知识和一些代码示例。欢迎阅读和指正。重点:PHP,curl,302跳转后抓取页面,一起来学习。

  PHP的CURL正常抓取页面程序如下:

  

$url = 'http://www.baidu.com';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_VERBOSE, true);

curl_setopt($ch, CURLOPT_HEADER, true);

curl_setopt($ch, CURLOPT_NOBODY, true);

curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'GET');

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_TIMEOUT, 20);

curl_setopt($ch, CURLOPT_AUTOREFERER, true);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);

$ret = curl_exec($ch);

$info = curl_getinfo($ch);

curl_close($ch);

  如果抓取到302状态,那是因为在爬取过程中,有些跳转需要给下一个链接传递参数,如果没有收到相应的参数,下一个链接也被设置了,就是非法访问。

  

curl_setopt($curl, CURLOPT_CUSTOMREQUEST, 'GET');

  显示应该是正常的。

  上面是用来抓取函数的,应该几乎没有问题。您可以查看 CURLOPT_CUSTOMREQUEST 相关信息。

  使用自定义请求消息而不是“GET”或“HEAD”作为 HTTP 请求。这对于执行“DELETE”或其他更模糊的 HTTP 请求很有用。有效值为“GET”、“POST”、“CONNECT”等。换句话说,不要在此处输入整个 HTTP 请求。例如,输入“GET /index.html HTTP/1.0\r\n\r\n”是错误的。

  相关文章

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线