導航:首頁 > 編程語言 > python模擬登錄知道明文密碼

python模擬登錄知道明文密碼

發布時間:2022-09-05 21:11:14

python爬蟲模擬登錄是什麼意思

有些網站需要登錄後才能爬取所需要的信息,此時可以設計爬蟲進行模擬登錄,原理是利用瀏覽器cookie。

一、瀏覽器訪問伺服器的過程:
(1)瀏覽器(客戶端)向Web伺服器發出一個HTTP請求(Http request);
(2)Web伺服器收到請求,發回響應信息(Http Response);
(3)瀏覽器解析內容呈現給用戶。

二、利用Fiddler查看瀏覽器行為信息:

Http請求消息:

(1)起始行:包括請求方法、請求的資源、HTTP協議的版本號

這里GET請求沒有消息主體,因此消息頭後的空白行中沒有其他數據。

(2)消息頭:包含各種屬性

(3)消息頭結束後的空白行

(4)可選的消息體:包含數據

Http響應消息:

(1)起始行:包括HTTP協議版本,http狀態碼和狀態

(2)消息頭:包含各種屬性

(3)消息體:包含數據


可以發現,信息里不僅有帳號(email)和密碼(password),其實還有_xsrf(具體作用往後看)和remember_me(登錄界面的「記住我」)兩個值。

那麼,在python爬蟲中將這些信息同樣發送,就可以模擬登錄。

在發送的信息里出現了一個項:_xsrf,值為

這個項其實是在訪問知乎登錄網頁https://www.hu.com/#signin時,網頁發送過來的信息,在瀏覽器源碼中可見:

所以需要先從登錄網址https://www.hu.com/#signin獲取這個_xsrf的值,

並連同帳號、密碼等信息再POST到真正接收請求的http://www.hu.com/login/email網址。

(2)獲取_xsrf的值:
爬取登錄網址https://www.hu.com/#signin,從內容中獲取_xsrf的值。
正則表達式。

(3)發送請求:
xsrf = 獲取的_xsrf的值
data = {"email":"xxx","password":"xxx","_xsrf":xsrf}
login = s.post(loginURL, data = data, headers = headers)
loginURL:是真正POST到的網址,不一定等同於登錄頁面的網址;

(4)爬取登錄後的網頁:
response = s.get(getURL, cookies = login.cookies, headers = headers)
getURL:要爬取的登陸後的網頁;
login.cookies:登陸時獲取的cookie信息,存儲在login中。

(5)輸出內容:
print response.content

五、具體代碼:

[python]view plain

❷ 如何用python模擬登錄一個網站

首先你要清楚整個登錄過程,瀏覽器按F12,查看網路,看看瀏覽器發生了什麼請求,收到了什麼回復。
然後用用urllib或requests庫發送request就行了。
關於要不要驗證碼,肯定有那個請求,你沒有看到吧?
如果要就會請求驗證碼,在request裡面發送就好了。

❸ 如何使用Python模擬帳號登錄和帳號注冊

用字典比用list 好些
list_user={}
cmd=raw_input('輸入命令 1 注冊 2登錄 3 退出:')
##print 'cmd:',cmd,cmd <>3,type(cmd)
cmd = int(cmd)
while (cmd <>3):

if cmd==1:

while True:
l = raw_input('輸入注冊賬號和密碼 用空格分開:')

user=l.split(' ')[0]
passw = l.split(' ')[0]
if list_user.has_key(user):
print u'帳號 %s 已經存在 ,重新輸入'%(user)

else:
list_user[user]=passw
print u'帳號 %s 注冊成功'%(user)
break

elif cmd ==2:
while True:
l = raw_input('輸入登錄賬號和密碼 用空格分開:')
user=l.split(' ')[0]
passw = l.split(' ')[0]
if list_user.has_key(user) and list_user[user]==passw:
print u'帳號 %s 登錄成功'%(user)
break
else:
print u'帳號 %s 登錄失敗 沒有此帳號或者帳號密碼不正確,重新輸入 '%(user)

else:
print u'命令不正確,重新 輸入命令 1 注冊 2登錄 3 退出:'

cmd=raw_input('重新 輸入命令 1 注冊 2登錄 3 退出:')
cmd = int(cmd)

>>>
輸入命令 1 注冊 2登錄 3 退出:1
輸入注冊賬號和密碼 用空格分開:a b
帳號 a 注冊成功
重新 輸入命令 1 注冊 2登錄 3 退出:1
輸入注冊賬號和密碼 用空格分開:a b
帳號 a 已經存在 ,重新輸入
輸入注冊賬號和密碼 用空格分開:b c
帳號 b 注冊成功
重新 輸入命令 1 注冊 2登錄 3 退出:2
輸入登錄賬號和密碼 用空格分開:c d
帳號 c 登錄失敗 沒有此帳號或者帳號密碼不正確,重新輸入
輸入登錄賬號和密碼 用空格分開:a b
帳號 a 登錄成功
重新 輸入命令 1 注冊 2登錄 3 退出:3
>>>

❹ python 模擬登陸

import httplib2response, content = httplib2.Http().request( "guji.artx.cn", "GET" header={"cookie":"bdshare_...", "User-Agent":"Mozilla/5.0 (Windows..."}
請求頭都以dict形式寫在header里就行了。
返回值中,response里主要是狀態碼,等信息,注意裡面的set-cookie欄位。
所以除了js無法實現,你完全可以100%模擬瀏覽器的行為,cookie、ua、referer都可以帶上。

請採納答案,支持我一下。

❺ 怎樣用Python設計一個爬蟲模擬登陸知乎

#!/usr/bin/envpython3
#-*-coding:utf-8-*-
'''
Required
-requests(必須)
-pillow(可選)
'''
importrequests
try:
importcookielib
except:
importhttp.cookiejarascookielib
importre
importtime
importos.path
try:
fromPILimportImage
except:
pass
#構造Requestheaders
agent='Mozilla/5.0(WindowsNT5.1;rv:33.0)Gecko/20100101Firefox/33.0'
headers={
'User-Agent':agent
}
#使用登錄cookie信息
session=requests.session()
session.cookies=cookielib.LWPCookieJar(filename='cookies')
try:
session.cookies.load(ignore_discard=True)
except:
print("Cookie未能載入")
defget_xsrf():
'''_xsrf是一個動態變化的參數'''
index_url='

#獲取登錄時需要用到的_xsrf
index_page=session.get(index_url,headers=headers)
html=index_page.text
pattern=r'name="_xsrf"value="(.*?)"'
#這里的_xsrf返回的是一個list
_xsrf=re.findall(pattern,html)
return_xsrf[0]
#獲取驗證碼
defget_captcha():
t=str(int(time.time()*1000))
captcha_url='

r=session.get(captcha_url,headers=headers)
withopen('captcha.jpg','wb')asf:
f.write(r.content)
f.close()
#用pillow的Image顯示驗證碼
#如果沒有安裝pillow到源代碼所在的目錄去找到驗證碼然後手動輸入
try:
im=Image.open('captcha.jpg')
im.show()
im.close()
except:
print(u'請到%s目錄找到captcha.jpg手動輸入'%os.path.abspath('captcha.jpg'))
captcha=input("pleaseinputthecaptcha >")
returncaptcha
defisLogin():
#通過查看用戶個人信息來判斷是否已經登錄
url="

login_code=session.get(url,allow_redirects=False).status_code
ifint(x=login_code)==200:
returnTrue
else:
returnFalse
deflogin(secret,account):
#通過輸入的用戶名判斷是否是手機號
ifre.match(r"^1d{10}$",account):
print("手機號登錄 ")
post_url='

postdata={
'_xsrf':get_xsrf(),
'password':secret,
'remember_me':'true',
'phone_num':account,
}
else:
print("郵箱登錄 ")
post_url='

postdata={
'_xsrf':get_xsrf(),
'password':secret,
'remember_me':'true',
'email':account,
}
try:
#不需要驗證碼直接登錄成功
login_page=session.post(post_url,data=postdata,headers=headers)
login_code=login_page.text
print(login_page.status)
print(login_code)
except:
#需要輸入驗證碼後才能登錄成功
postdata["captcha"]=get_captcha()
login_page=session.post(post_url,data=postdata,headers=headers)
login_code=eval(login_page.text)
print(login_code['msg'])
session.cookies.save()
try:
input=raw_input
except:
pass
if__name__=='__main__':
ifisLogin():
print('您已經登錄')
else:
account=input('請輸入你的用戶名 >')
secret=input("請輸入你的密碼 >")
login(secret,account)

❻ python怎麼模擬登陸含有驗證碼的網站

爬取網站時經常會遇到需要登錄的問題,這是就需要用到模擬登錄的相關方法。Python提供了強大的url庫,想做到這個並不難。這里以登錄學校教務系統為例,做一個簡單的例子。
首先得明白cookie的作用,cookie是某些網站為了辨別用戶身份、進行session跟蹤而儲存在用戶本地終端上的數據。因此我們需要用Cookielib模塊來保持網站的cookie。
這個是要登陸的地址 http://202.115.80.153/ 和驗證碼地址 http://202.115.80.153/CheckCode.aspx
可以發現這個驗證碼是動態更新的每次打開都不一樣,一般這種驗證碼和cookie是同步的。其次想識別驗證碼肯定是吃力不討好的事,因此我們的思路是首先訪問驗證碼頁面,保存驗證碼、獲取cookie用於登錄,然後再直接向登錄地址post數據。

❼ 怎麼python 模擬網站登錄、注冊

將注冊名和密碼存到字典中,下次登陸時就可以判斷是否對應

❽ 怎樣用Python設計一個爬蟲模擬登陸知乎

兩種方法:
1.帶cookielib和urllib2
import urllib2
import urllib
import cookielib
def login():
email = raw_input("請輸入用戶名:")
pwd = raw_input("請輸入密碼:") data={"email":email,"password":pwd}
post_data=urllib.urlencode(data) cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))headers
={"User-agent":"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1"}website =
raw_input('請輸入網址:')req=urllib2.Request(website,post_data,headers)content=opener.open(req)print
content.read()
2.使用selenium
import selenium import webdriver
browser=webdriver.Firefox()
browser.get("Url")
browser.find_element_by_id(" ").sendkey("username")
browser.find_element_by_id(" ").sendkey("pass")
browser.find_element_by_id(" ").click()
其實我這個最簡單了,用的python3,requests, 只需要驗證一次,就會保存cookies,下次登錄使用cookies登錄。
第一步、打開首頁獲取_xref值,驗證圖片 第二步、輸入賬號密碼 第三步、看是否需要驗證、要則下載驗證碼圖片,手動輸入
第四步、判斷是否登錄成功、登錄成功後獲取頁面值。

❾ python模擬用戶登錄系統,如何兩個用戶輸入各自的密碼才能登入

users = {'root': ['123', False], 'westos': ['456', False]}

while True:

if all([x[1] for x in users.values()]):

print('two users login successfully')

break

user = input('input user name: ')

if not users.get(user):

print('unexist user')

continue

else:

for i in range(3):

pw = input('input password: ')

if users[user][0] == pw:

print(f'user `{user}` login successfully')

users[user][1] = True

break

用一個字典存儲username,pw以及登錄狀態. 10行判斷是否兩個人登錄狀態都為True,如果是,則列印並退出while. 否則13行輸入username,如果name不存在,while continue; 如果存在, 進入else,輸入密碼,密碼對則列印並修改狀態.超過3次退出for進入while.

閱讀全文

與python模擬登錄知道明文密碼相關的資料

熱點內容
批處理編譯qt 瀏覽:65
鐵友app怎麼查詢機票訂單 瀏覽:197
myeclipselinux破解版 瀏覽:417
批處理命令語法不正確 瀏覽:889
pdf合並成一個pdf在線 瀏覽:383
柱加密區構造要求 瀏覽:514
地板木龍骨標准跟加密區別 瀏覽:150
解壓放鬆的好地方河南 瀏覽:965
搜狗怎麼移動到文件夾 瀏覽:617
文件自動選擇到文件夾 瀏覽:794
贈送的app怎麼在ipad下載 瀏覽:508
頸椎解壓後神經恢復 瀏覽:849
怎麼看app訂閱扣費 瀏覽:314
linux系統的負載均衡 瀏覽:419
遇到挫折解壓視頻 瀏覽:778
什麼指令看伺服器運行負載 瀏覽:84
因碩智能門鎖卡片是加密的么 瀏覽:336
為什麼會伺服器不可用 瀏覽:290
wow宏命令設置 瀏覽:264
解壓神器一張紙折疊魔術球 瀏覽:23