中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

稻城县| 阳曲县| 铜陵市| 武清区| 保定市| 西吉县| 靖西县| 淮安市| 麻江县| 泸溪县| 黔东| 定陶县| 梓潼县| 新乐市| 新巴尔虎右旗| 沾益县| 清水县| 延边| 牡丹江市| 金坛市| 阿城市| 本溪市| 偏关县| 永和县| 大埔区| 龙胜| 扶绥县| 内黄县| 新干县| 绥棱县| 天峻县| 左贡县| 上虞市| 平凉市| 南康市| 博客| 陆川县| 九龙城区| 耒阳市| 砚山县| 运城市|