zoukankan      html  css  js  c++  java
  • PHP curl_setopt函数用法介绍补充篇

    1.curl数据采集系列之单页面采集函数get_html

    单页面采集在数据采集过程中是最常用的一个功能 有时在服务器访问限制的情况下 只能使用这种采集方式 慢 

    但是可以简单的控制 所以写好一个常用的curl函数调用是很重要的。

    <?php
    $url = 'http://www.baidu.com';
    $ch = curl_init($url);
    curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
    curl_setopt($ch,CURLOPT_TIMEOUT,5);
    $html = curl_exec($ch);
    if($html !== false){
        echo $html;
    }
    
    ?>

    或者:

    <?php
    function get_html($url,$options = array()){
        $options[CURLOPT_RETURNTRANSFER] = true;
        $options[CURLOPT_TIMEOUT] = 5;
        $ch = curl_init($url);
        curl_setopt_array($ch,$options);
        $html = curl_exec($ch);
        curl_close($ch);
        if($html === false){
            return false;
        }
        return $html;
    }
    
    $url = 'http://www.baidu.com';
    echo get_html($url);
    
    ?>

     2.Referer的采集

    对于一些程序,它可能判断来源网址,如果发现referer不是自己的网站,则拒绝访问,

    这时候,我们就需要添加CURLOPT_REFERER参数,模拟来路,使得程序能够正常采集。

    <?php
    $keyword = 'PHP cURL';
        //参数方法一
        // $post       = 'wd=' . urlencode($keyword);
        
        //参数方法二
        $post= array(
            'wd'=> urlencode($keyword),
        );
        $url = 'http://localhost/ajax_page/';
        $refer = 'http://localhost/ajax_page/';    //来路地址
        
        $ch  = curl_init($url);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  //返回数据不直接输出
        curl_setopt($ch, CURLOPT_REFERER, $refer);    //来路模拟
        curl_setopt($ch, CURLOPT_POST, 1);            //发送POST类型数据
        curl_setopt($ch, CURLOPT_POSTFIELDS, $post);  //POST数据,$post可以是数组,也可以是拼接
        $content = curl_exec($ch);                    //执行并存储结果
        curl_close($ch);
        
        echo $content;
    ?>
  • 相关阅读:
    HashMap源码解析
    深入理解Java字符串
    Netty粘包、半包
    Netty源码分析-Future和Promise
    Lock简介
    一、Netty中的EventLoop
    对象实例化内存布局与访问定位
    运行时数据区概述及线程
    TCP三次握手和四次挥手
    Redis线程IO模型-Redis 单线程为什么还能这么快?
  • 原文地址:https://www.cnblogs.com/wuheng1991/p/5150669.html
Copyright © 2011-2022 走看看