zoukankan      html  css  js  c++  java
  • 一个网页抓取的类支持get+post+cookie存储

    前段时间提取了一个工具类,分享给大家:

    <?php
    class httpconnector {
        private $curl;
        private $cookie;
        private $kv;
        function __construct(){
            $this->kv = new SaeKV();
            $this->kv->init();
            if($data=$this->kv->get("cookie"))
              $this->cookie=$data;
     
        }
        public function get($url) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
            curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER);
            foreach ($match as $r) {
                if ($this->cookie != '') {
                    $this->cookie = $this->cookie . ';';
                }
                if (isset($r[1])) {
                    $this->cookie .= trim(str_replace("
    ", "", $r[1]));
                }
            }
            $this->kv->set("cookie",$this->cookie);
            return $data;
     
        }
        public function post($url, $params) {
            $this->curl = curl_init();
            curl_setopt($this->curl, CURLOPT_URL, $url);
            curl_setopt($this->curl, CURLOPT_HEADER, 1);
            curl_setopt($this->curl, CURLOPT_COOKIE, $this->cookie);
            curl_setopt($this->curl, CURLOPT_POST, 1);
            curl_setopt($this->curl, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)");
            curl_setopt($this->curl, CURLOPT_POSTFIELDS, $params);
            curl_setopt($this->curl, CURLOPT_RETURNTRANSFER, 1);
            $data = curl_exec($this->curl);
            curl_close($this->curl);
            preg_match_all("/Set-Cookie:(.*?);/", $data, $match, PREG_SET_ORDER);
            foreach ($match as $r) {
                if ($this->cookie != '') {
                    $this->cookie = $this->cookie . ';';
                }
                if (isset($r[1])) {
                    $this->cookie .= trim(str_replace("
    ", "", $r[1]));
                }
            }
            $this->kv->set("cookie",$this->cookie);
            return $data;
     
        }
    }
    ?>
    
     
    
  • 相关阅读:
    理解Promise函数中的resolve和reject
    一行代码 去除滚动条
    django开发前准备工作
    居中select中的option选项
    setTimeout中第一个参数
    利用es6解构赋值快速提取JSON数据;
    需要删除远程分支,刚好有正在别的分支做的事情
    vue项目处理dpr和多屏幕适配问题
    使用mockjs模拟后端返回的json数据;
    移动端页面中点击input输入框的时候弹出的键盘将输入框挡住的问题
  • 原文地址:https://www.cnblogs.com/mengdejun/p/3375991.html
Copyright © 2011-2022 走看看