當前位置:首頁 » 編程語言 » php模擬登錄qq

php模擬登錄qq

發布時間: 2025-01-25 02:38:44

『壹』 如何判斷php中curl模擬登陸是否成功

/**
* 模擬登錄
*/

//初始化變數
$cookie_file = "tmp.cookie";
$login_url = "";
$verify_code_url = "";

echo "正在獲取COOKIE...\n";
$curlj = curl_init();
$timeout = 5;
curl_setopt($curl, CURLOPT_URL, $login_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, $timeout);
curl_setopt($curl,CURLOPT_COOKIEJAR,$cookie_file); //獲取COOKIE並存儲
$contents = curl_exec($curl);
curl_close($curl);

echo "COOKIE獲取完成,正在取驗證碼...\n";
//取出驗證碼
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $verify_code_url);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$img = curl_exec($curl);
curl_close($curl);

$fp = fopen("verifyCode.jpg","w");
fwrite($fp,$img);
fclose($fp);
echo "驗證碼取出完成,正在休眠,20秒內請把驗證碼填入code.txt並保存\n";
//停止運行20秒
sleep(20);

echo "休眠完成,開始取驗證碼...\n";
$code = file_get_contents("code.txt");
echo "驗證碼成功取出:$code\n";
echo "正在准備模擬登錄...\n";

$post = "username=maben&pwd=hahahaha&verifycode=$code";
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER,1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
curl_setopt($curl, CURLOPT_COOKIEFILE, $cookie_file);
$result=curl_exec($curl);
curl_close($curl);

//這一塊根據自己抓包獲取到的網站上的數據來做判斷
if(substr_count($result,"登錄成功")){
echo "登錄成功\n";
}else{
echo "登錄失敗\n";
exit;
}

『貳』 PHP 微信公眾平台模擬登陸問題

你太菜了。請分數給我。
curl的文檔:

CURLOPT_SSLVERSION

使用的SSL版本(2 或 3)。默認情況下PHP會自己檢測這個值,盡管有些情況下需要手動地進行設置。

最後curl添加

curl_setopt($ch, CURLOPT_SSLVERSION, 3); //設定SSL版本

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);

『叄』 PHP 微信模擬登錄獲取不到token

已經認證的服務號被檢測到模擬登錄,強制手機(phone=+86158******71 後面的就是被掩碼的手機號)開啟簡訊驗證。只有當真正瀏覽器時就會通過JS觸發簡訊通知,模擬登陸則不會。

在頁面輸入收到的簡訊驗證碼後,才能獲得 登錄token。

這是微信官方的技術手段,此問題暫時無解。

『肆』 如何通過php程序模擬用戶登錄

模擬用戶可以用php的curl的post,例如
$url = "http://www.uzuzuz.com";
$post_data = array ("username" => "uzuzuz","password" => "12345");

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
// post數據
curl_setopt($ch, CURLOPT_POST, 1);
// post的變數
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);
$output = curl_exec($ch);
curl_close($ch);
//列印獲得的數據
print_r($output);

具體參考:http://www.uzuzuz.com/article/4.html

『伍』 php模擬登陸抓取數據,無法用正則表達式匹配中文

header()函數是輸出到HTTP頭,和你這個問題是沒有關系的。

真正相關的,是你的源代碼的編碼方式。
我舉個例子,若源代碼文件是採用UTF8編碼,那麼你在抓取到頁面後,先要進行編碼轉換到UTF8!
如,使用iconv:
若抓取到的頁面存放在$contents中:那麼運行$contents=iconv('gb2312','utf-8//IGNORE',$contents);//參數中的IGNORE是忽略錯誤
這樣再進行正則匹配才行。
當然匹配出來的結果也需要用UTF8來正常顯示,所以header()那部分就不用去掉了。

『陸』 python http requests 怎麼實現模擬登錄,提交表單

以下實例是一個完整的代碼,實現了從博客獲取內容發布至網路,分別實踐抓取博客內容、模擬登錄、表單提交這幾步;
#注意,以下程序是一個完全程序,如果只需要實現模擬登錄,提交表單,刪除抓取部分即可,相關的代碼已經清楚標注,可以根據自己實際情況修改。
代碼如下:
# -*- coding: utf-8 -*-
import re
import urllib
import urllib2
import cookielib
#第一步,獲取博客標題和正文 ,「IP」可以改為實際地址;
url = "IP"
sock = urllib.urlopen(url)
html = sock.read()
sock.close()
content = re.findall('(?<=blogstory">).*(?=<p class="right artical)', html, re.S)
content = re.findall('<script.*>.*</script>(.*)', content[0], re.S)
title = re.findall('(?<=<title>)(.*)-.* - CSDN.*(?=</title>)', html, re.S)
#根據文章獲取內容新建表單值
blog = {'spBlogTitle': title[0].decode('utf-8').encode('gbk'), #文章標題
'spBlogText': content[0].decode('utf-8').encode('gbk'),#文章內容
'ct': "1",
'cm': "1"}
del content
del title

#第二步,模擬登錄網路;
cj = cookielib.CookieJar()
#登陸網路的用戶名和密碼
post_data = urllib.urlencode({'username': '[username]', 'password': '[password]', 'pwd': '1'})
#登錄地址路徑
path = 'https://passport..com/?login'
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
opener.addheaders = [('User-agent', 'Opera/9.23')]
urllib2.install_opener(opener)
req = urllib2.Request(path, post_data)
conn = urllib2.urlopen(req)

#獲取網路登陸認證令牌
bd = urllib2.urlopen(urllib2.Request('http://hi..com/[username]/creat/blog')).read()
bd = re.findall('(?<=bdstoken\" value=\").*(?=ct)', bd, re.S)
blog['bdstoken'] = bd[0][:32]
#設置分類名
blog['spBlogCatName'] = 'php'
#第四步,比較表單,提交表單;req2 = urllib2.Request('http://hi..com/[username]/commit', urllib.urlencode(blog))
#最後,查看錶單提交後返回內容,檢驗;
print urllib2.urlopen(req2).read()
#注意:將[username]/[password]替換為自己真實用戶名和密碼

『柒』 PHP中的curl模擬登陸中的$url登錄界面地址與處理登錄邏輯的地址有什麼區別

要模擬瀏覽器訪問網站,首選要學會觀察瀏覽器是如何發送http報文的,以及網站伺服器返回給瀏覽器 是什麼樣的內容。我推薦安裝一個國外人開發的httpwatch的軟體,最好搞個破解的版本,否則有些功能是使用不了的。這個軟體安裝完成之後是嵌入在 IE里的,啟動Record,在地址欄輸入網址後回車,它就會將瀏覽器和伺服器之間的所有通訊掃描出來,讓你一覽無遺。關於這個軟體的使用在本文不做介 紹。
模擬瀏覽器登陸應用開發,最關鍵的地方是突破登陸驗證。CURL技術不只支持http,還支持https。區別就在多了一層SSL加密傳輸。如果是要登陸 https網站,php記得要支持openssl。還是先拿一個例子來分析。

熱點內容
qq推薦上傳照片取消 發布:2025-01-25 07:36:22 瀏覽:138
windows2012伺服器電腦重啟 發布:2025-01-25 07:35:13 瀏覽:724
eval與php 發布:2025-01-25 07:24:28 瀏覽:36
伺服器電腦初次上網 發布:2025-01-25 07:21:42 瀏覽:669
升級android6 發布:2025-01-25 07:17:59 瀏覽:779
多人直播源碼 發布:2025-01-25 07:16:38 瀏覽:466
機房伺服器如何安裝系統 發布:2025-01-25 07:03:02 瀏覽:937
linux命令for循環 發布:2025-01-25 06:58:07 瀏覽:268
c語言鏈表的排序 發布:2025-01-25 06:48:17 瀏覽:887
查看存儲空間的命令 發布:2025-01-25 06:40:06 瀏覽:610