1. 程式人生 > >curl獲取登入狀態

curl獲取登入狀態

一般用來獲取網站的登入狀態方便採集

<?php 
	//模擬登入 
function login_post($url, $cookie, $post) { 
    $curl = curl_init();//初始化curl模組 
    curl_setopt($curl, CURLOPT_URL, $url);//登入提交的地址 
    curl_setopt($curl, CURLOPT_HEADER, 0);//是否顯示頭資訊 
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 0);//是否自動顯示返回的資訊 
    curl_setopt($curl, CURLOPT_COOKIEJAR, $cookie); //設定Cookie資訊儲存在指定的檔案中 
    curl_setopt($curl, CURLOPT_POST, 1);//post方式提交 
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($post));//要提交的資訊
    curl_exec($curl);//執行cURL 
    curl_close($curl);//關閉cURL資源,並且釋放系統資源 
}
//登入成功後獲取資料 
function get_content($url, $cookie) { 
    $ch = curl_init(); 
    curl_setopt($ch, CURLOPT_URL, $url); 
    curl_setopt($ch, CURLOPT_HEADER, 0); 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
    curl_setopt($ch, CURLOPT_COOKIEFILE, $cookie); //讀取cookie 
    $rs = curl_exec($ch); //執行cURL抓取頁面內容 
    curl_close($ch); 
    return $rs; 
}

//設定post的資料 
// $post = array ( 
//     'email' => 'oschina賬戶', 
//     'pwd' => 'oschina密碼', 
//     'goto_page' => '/my', 
//     'error_page' => '/login', 
//     'save_login' => '1', 
//     'submit' => '現在登入' 
// ); 
//設定post的資料 //post下標為表單的name
$post = array ( 
    'email' => '登入的賬號', 
    'password' => '登入的密碼',
); 
 
//登入地址 
$url = ''; 
//設定cookie儲存路徑 
$cookie = dirname(__FILE__) . '/cookie_oschina.txt'; 
//登入後要獲取資訊的地址 
$url2 = ""; 
//模擬登入 
login_post($url, $cookie, $post); 
//獲取登入頁的資訊 
$content = get_content($url2, $cookie);
// var_dump($content);die;

//刪除cookie檔案 
@ unlink($cookie); 
echo $content;die;
//匹配頁面資訊 
$preg = "/<td class='portrait'>(.*)</td>/i"; 
preg_match_all($preg, $content, $arr); 
$str = $arr[1][0]; 
//輸出內容 
echo $str;
 ?>


相關推薦

curl獲取登入狀態

一般用來獲取網站的登入狀態方便採集 <?php //模擬登入 function login_post($url, $cookie, $post) { $curl = cur

linux中shell curl命令獲取http狀態

linux中shell curl命令獲取http狀態碼linux中shell curl命令獲取http狀態碼通過curl的-w參數我們可以自定義curl的輸出,%{http_code}代表http狀態碼 代碼如下 復制代碼# curl -I -m 10 -o /dev/null -s -w %{http_co

php通過登入後的cookie以及使用者代理然後通過curl獲取網頁內容

function curl_get_https($url, $data=array(), $header=array(), $timeout=30){     $ch = curl_init();     curl_setopt($ch, CURLOPT_

微信小程式 獲取使用者資訊並儲存登入狀態

前言、   微信小程式的執行環境不是在瀏覽器下執行的。所以不能以cookie來維護登入態。下面我就來說說我根據官方給出的方法來寫出的維護登入態的方法吧。 一、登入態維護 官方的文件地址:https://mp.weixin.qq.com/debug/wxadoc/dev/api/api-l

shell指令碼使用curl獲取訪問網站的狀態

curl -I -m 10 -o /dev/null -s -w %{http_code} www.baidu.com -I 僅測試HTTP頭 -m 10 最多查詢10s -o /dev/null 遮蔽原有輸出資訊 -s silent -w %{http_code} 控制

Magento獲取使用者登入狀態登入使用者資訊 /頁面載入 XML 檔案

Magento開發時經常需要獲取到當前登入管理員的使用者資訊,比如管理員的id,姓名,email地址,使用者名稱等。下面列出Magento中呼叫管理員資訊的相關函式。 $user = Mage::getSingleton('admin/session'); $userI

使用PHP-curl獲取驗證碼並模擬登入教務系統

首先說一下這篇文章的需求,當我們在一些沒有提供驗證介面的系統中,需要驗證使用者身份的時候,就可能需要使用者登入當前系統,從而確定該使用者是當前系統的合法使用者,校園的教務系統就是一個典型的例子,我們通過學生自己登入學校的教務系統從而確定該使用者為在校生。 但是

php利用curl獲取網頁title內容

charset 釋放 tput head func reg 文字編碼 top titles <?php $url = ‘http://www.k7wan.com‘; echo getTitle_web_curl($url); function getTitl

【Android N 7.1.1】 ActivityManagerService 獲取cpu狀態

nts ota system sna ati andro ood imp use void updateCpuStatsNow() { synchronized (mProcessCpuTracker) { mProcessCpuM

獲取響應狀態Status信息、獲取狀態碼Status Code

數據 bootstra 9.png nts web not found sys 獲取 closeable 一般服務器的響應狀態有以下幾種: 200 正常 400 未找到頁面 403 拒絕 500 服務器錯誤 比如我們請求bootstrap中文網, 此時的狀態碼是200

php 通過curl獲取遠程數據,返回的是一個數組型的字符串,高手幫忙如何將這個數組類型的字符串變成數組。

bsp 選項 con 獲取 pan 如果 clas exe transfer 如 Array([0] => Array([0] => Array([kd_status] => 已簽收[kd_time] => 2014-04-30 18:59:43 [

ZooKeeper Commands: The Four Letter Words 獲取監控狀態

export ade zookeepe config content 參考手冊 zookeeper spa avg ZooKeeper responds to a small set of commands. Each command is composed of four

awk 獲取系統狀態 cpu 內存

print use config 取出 awk ant lscpu 用戶 sbin [root@centos-6_5 awk]# cat system.sh #!/bin/bash#coding:utf-8#author:fjj#date:2018.1.28echo &qu

Jenkins獲取編譯狀態

方案 lur cas exc als ati star .get 邏輯 背景:在通過python的API調用Jenkins,啟動Jenkins的job任務時,是需要知道Jenkins的編譯狀態,獲取編譯狀態為 status=server.get_build_info(jo

[轉][html]radio 獲取選中狀態

radi some class 選中 -c get spa checked com 方法一: if ($("#checkbox-id").get(0).checked) { // do something } 方法二: if($(‘#checkbox-id‘).is(‘:

react專案中頁面跳轉、重新整理及獲取網路狀態

// 頁面跳轉 window.location.href = 'http://speedtest.wangxiaotong.com/' // 頁面重新整理 window.location.reload() // 獲取當前網路狀態,只能判斷使用者電腦有沒有斷網(包括無線和有線),有網為true,沒有網

Android 用sp儲存登入狀態以及退出登入

public class SharedPrefUtility { private static final String FILE_NAME = "share_date"; public static final String INDEX="index"; publi

python3 requests 模擬登入狀態的兩種方式

python version: 3.6 模擬登入狀態,即有些操作是必須使用者登入後才可以進行的,技術上與cookie和session有關。 cookie是使用者登入後,伺服器返回給客戶端的,客戶端儲存cookie後,用於告訴服務端我是登入過的。 session是後端用以鑑定使用者是

subject 獲取登入使用者資訊

shiro 管理登入,獲取登入資訊的方式常用的是: Subject sub = SecurityUtils.getSubject(); Object obj = sub.getPrincipal(); 這裡的 obj 是字串,還是某個實體,取決於 ShiroRealm 類的設定值,程式碼如下

python api介面測試---要驗證登入狀態的介面

*** 有些測試系統為了演示多方便,會將登入的校驗去掉。不登入也可以用api 實際的系統需要攜帶正確得到id才能呼叫後面的介面成功 登入的目的是後續的請求中攜帶sessionid,sessionid哪來的?是登入的時候響應訊息裡面建立的。 登入成功後,返回的結果裡有一個set_c