91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

PHP CURL獲取cookies模擬登錄的方法

發布時間:2020-06-11 20:46:12 來源:網絡 閱讀:974 作者:gutaotao1989 欄目:web開發

要提取google搜索的部分數據,發現google對于軟件抓取它的數據屏蔽的厲害,以前偽造下 USER-AGENT 就可以抓數據,但是現在卻不行了。利用抓包數據發現,Google 判斷了 cookies,當你沒有cookies的時候,直接返回 302 跳轉,而且是連續幾十個302跳轉,根本抓不了數據。

因此,在發送搜索命令時,需要先提取 cookies 并保存,然后利用保存下來的這個cookies再次發送搜索命令即可正常抓數據了。這其實和論壇的模擬登錄一個道理,先POST登錄,獲取cookies并保存,然后利用這個cookies訪問就可以了。

PHP 代碼如下:


$login_url = 'XXX';  

   

 $post_fields['email'] = 'XXXX';  

 $post_fields['password'] = 'XXXX';  

 $post_fields['origURL'] = 'XXX';  

 $post_fields['domain'] = 'xxx.com';  

 //cookie文件存放在網站根目錄的temp文件夾下  

 $cookie_file = tempnam('./temp','cookie');  

   

 $ch = curl_init($login_url);  

 curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; zh-CN; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5');  

 curl_setopt($ch, CURLOPT_HEADER, 0);  

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  

 curl_setopt($ch, CURLOPT_MAXREDIRS, 1);  

 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);  

 curl_setopt($ch, CURLOPT_AUTOREFERER, 1);  

 curl_setopt($ch, CURLOPT_POST, 1);  

 curl_setopt($ch, CURLOPT_POSTFIELDS, $post_fields);  

 curl_setopt($ch, CURLOPT_COOKIEJAR, $cookie_file);  

 curl_exec($ch);  

 curl_close($ch);  

   

 //帶上cookie文件,訪問需要訪問的頁面  

 $send_url='xxx.com';  

 $ch = curl_init($send_url);  

 curl_setopt($ch, CURLOPT_HEADER, 0);  

 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);  

 curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie_file);  

 $contents = curl_exec($ch);  

 curl_close($ch);  

   

 //清理cookie文件  

unlink($cookie_file);  

   

 //輸出網頁內容  

print_r($contents);


在temp文件夾下保存一個cookie前綴的臨時文件,例如:coo3A98.tmp文件

打開這個文件得到如下代碼:

PHP CURL獲取cookies模擬登錄的方法


要使用php來格式化該文件,使用以下代碼就能實現

<?php   

 $cookie_folder = dirname(__FILE__)."/temp";  

 $lines = file($cookie_folder.'/coo3A98.tmp');  

   

 $trows = '';  

   

 foreach($lines as $line) {  

     if($line[0] != '#' && substr_count($line, "\t") == 6) {  

         $tokens = explode("\t", $line);  

         $tokens = array_map('trim', $tokens);  

         $tokens[4] = date('Y-m-d h:i:s', $tokens[4]);  

         $trows .= '<tr><td>' . implode('</td><td>', $tokens) . '</td></tr>' . PHP_EOL;  

     }  

 }  

 echo '<table>'.PHP_EOL.'<tbody>'.PHP_EOL.$trows.'</tbody>'.PHP_EOL.'</table>';  

 ?>


運行之后就如下圖所示,已經被寫入到table當中

PHP CURL獲取cookies模擬登錄的方法

大功告成,如果只讀取其中字段可自行修改即可。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

铁力市| 东台市| 社旗县| 车险| 平顺县| 阿勒泰市| 洛隆县| 获嘉县| 岢岚县| 屏山县| 邢台县| 长沙县| 江达县| 阳原县| 上饶县| 凤庆县| 准格尔旗| 张家界市| 乌鲁木齐市| 延边| 沭阳县| 牡丹江市| 富锦市| 苍山县| 云浮市| 丰都县| 洪湖市| 周宁县| 鄢陵县| 舒兰市| 和田县| 仲巴县| 治县。| 赤峰市| 灵山县| 台州市| 陕西省| 鄂伦春自治旗| 弥勒县| 分宜县| 财经|