溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

PHP灌水機(jī)器人實現(xiàn)原理

發(fā)布時間:2020-04-09 13:20:44 來源:網(wǎng)絡(luò) 閱讀:147 作者:hgditren 欄目:web開發(fā)

實現(xiàn)原理:
通過curl工具模擬登錄,然后調(diào)用相關(guān)接口發(fā)送數(shù)據(jù)進(jìn)行各種操作。

需要掌握知識點:

  • curl的POST/GET操作
  • curl發(fā)送header頭信息
  • curl接受保存來自服務(wù)端的cookie
  • curl發(fā)送cookie

代碼示范

  1. curl的GET操作

    
    private function projectCollections(): array
    {
        $ts = microtime(true) * 1000;
        $api = "http://www.****.com/json/projectCollections?status=1&username={$this->userName}&limit=1&projectID={$this->projectID}&ts=" . $ts;   //API地址
    
        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $api);
        curl_setopt($curl, CURLOPT_HEADER, 0);//是否顯示頭信息
        curl_setopt($curl, CURLOPT_COOKIEJAR, $this->cookie); //設(shè)置Cookie信息保存在指定的文件中
        curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie); //發(fā)送cookie信息
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_REFERER, "http://www.***.com/details/v5?id={$this->projectID}&isView=true");
        curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36");
        $json = curl_exec($curl);
        curl_close($curl);
    
        \Log::error(var_export($json, true));
        return json_decode($json, true);
        //{"meta":{"total":"0","start":"1","size":"0"},"data":[]}
    }
  2. curl的POST操作
//收藏
    private function addCollection()
    {
        $api = "http://www.****.com/sjc/api/project/collection/add";

        $postData = [
            'id' => (string)$this->projectID,
        ];
        $data = json_encode($postData);
        $length = strlen($data);

        $headers = [
            //'Origin:http://www.ilab-x.com',
            //'Host:www.ilab-x.com',
            "Content-type: application/json",
            'Content-Length: ' . $length,
        ];
        \Log::error(var_export($postData, true));
        \Log::error(var_export($data, true));

        $curl = curl_init();
        curl_setopt($curl, CURLOPT_URL, $api);
        curl_setopt($curl, CURLOPT_HEADER, 0);//是否顯示頭信息
        curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($curl, CURLOPT_HTTPHEADER, $headers);
        curl_setopt($curl, CURLOPT_COOKIEJAR, $this->cookie); //設(shè)置Cookie信息保存在指定的文件中
        curl_setopt($curl, CURLOPT_COOKIEFILE, $this->cookie); //發(fā)送cookie信息
        curl_setopt($curl, CURLOPT_POST, 1);//post方式提交
        curl_setopt($curl, CURLOPT_POSTFIELDS, $data);//注意,這里提交json格式
        curl_setopt($curl, CURLOPT_REFERER, "http://www.****.com/details/v5?id={$this->projectID}&isView=true");
        curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36");
        curl_setopt($curl, CURLOPT_ENCODING, 'deflate');

        $json = curl_exec($curl);
        curl_close($curl);
        \Log::error(var_export($headers, true));
        \Log::error(var_export($json, true));
        return json_decode($json, true);
    }
向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI