python實現(xiàn)自動登錄后臺管理系統(tǒng)
本文實例為大家分享了python實現(xiàn)自動登錄后臺管理系統(tǒng)的具體代碼,供大家參考,具體內(nèi)容如下
首先感謝下網(wǎng)絡(luò)上的各位大神和博主,通過學(xué)習(xí)各位大神的文章,才實現(xiàn)了該腳本
①首先瀏覽器運(yùn)行真是系統(tǒng)通過fiddler抓包,抓取到登錄地址(后面的地址和頭部信息等都是通過fiddler抓取的)

并獲取頭信息,header信息里面Accept-Encoding: gzip, deflate去掉吧,免得后面提取頁面的url時無法解碼,通過代碼實現(xiàn)后,這個時候回返回html文本,從文本里面獲取下一步要進(jìn)入的系統(tǒng)的地址,這個地址已經(jīng)附上cookie即token了,只有經(jīng)過了這一步請求,才能進(jìn)行下一步的對系統(tǒng)里面的內(nèi)容進(jìn)行操作(之前沒有經(jīng)過這一步,就進(jìn)行了具體操作的url請求,總是返回重定位到登錄界面)。
②然后再進(jìn)行這個帶token的url的請求
③請求完成后即可進(jìn)行想要的操作了
下面直接上代碼,有一些信息是公司的信息,我直接屏蔽換成通用字符串
# coding=utf-8
import urllib.request
import urllib
import http.cookiejar
from database_functions import *
import re
# 正則表達(dá)式匹配規(guī)則
regx = re.compile(r'(.*)(href=\")(.*)(\"\starget=.*bms.*)')
# 定義一個方法用于生成請求頭信息,處理cookie
def getopener(head):
cj = http.cookiejar.CookieJar()
pro = urllib.request.HTTPCookieProcessor(cj)
opener = urllib.request.build_opener(pro)
header = []
for key, value in head.items():
elem = (key, value)
header.append(elem)
opener.addheaders = header
return opener
def modify_appeal_status_pass(phone):
index, status = get_appeal_by_phone(phone)
# 封裝頭信息,偽裝成瀏覽器
header = {
'Connection': 'Keep-Alive',
'Accept-Language': 'zh-CN,zh;q=0.9',
'Accept': 'application/json, text/javascript,text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8',
'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/64.0.3282.140 Safari/537.36',
'X-Requested-With': 'XMLHttpRequest',
'Host': 'xxx.xxx.xxx',
}
# 登錄地址
login_url = 'http://xxx.xxx.xxx/xx-xxx/login.do'
# request封裝cookie和頭信息
opener = getopener(header)
urllib.request.install_opener(opener)
username = '***' # 你的用戶名
password = '***' # 你的密碼
postdict = {
'username': username,
'password': password
}
# 登錄請求
postdata = urllib.parse.urlencode(postdict).encode('utf-8')
login_response = urllib.request.Request(login_url, data=postdata, headers=header) #登錄系統(tǒng)
login_webpage = urllib.request.urlopen(login_response)
# 返回的html頁面
login_data = login_webpage.read().decode()
# 獲取系統(tǒng)地址
bms_url = regx.findall(login_data)[0][2]
# 請求xxxx
bms_response = urllib.request.Request(bms_url, headers=header)
bms_webpage = urllib.request.urlopen(bms_response)
# 返回的系統(tǒng)后臺頁面
bms_data = bms_webpage.read().decode()
# 對xx狀態(tài)進(jìn)行修改
update_url = "http://xxx.xxx.xxx/xxx/xxx/xxx/xxx/{index}".format(index=index)
update_response = urllib.request.Request(update_url, headers=header)
update_webpage = urllib.request.urlopen(update_response)
update_data = update_webpage.read().decode()
print(update_data)
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Python學(xué)習(xí)開發(fā)之圖形用戶界面詳解
當(dāng)前流行的計算機(jī)桌面應(yīng)用程序大多數(shù)為圖形化用戶界面(Graphic User Interface,GUI),python也提供了多個圖形開發(fā)界面的庫,這篇文章主要給大家介紹了關(guān)于Python學(xué)習(xí)開發(fā)之圖形用戶界面的相關(guān)資料,需要的朋友可以參考下2021-08-08
Python守護(hù)進(jìn)程(daemon)代碼實例
這篇文章主要介紹了Python守護(hù)進(jìn)程(daemon)代碼實例,本文直接給出實現(xiàn)代碼,代碼中包含詳細(xì)注釋,需要的朋友可以參考下2015-03-03
深入解析Python中BeautifulSoup4的基礎(chǔ)知識與實戰(zhàn)應(yīng)用
BeautifulSoup4正是一款功能強(qiáng)大的解析器,能夠輕松解析HTML和XML文檔,本文將介紹BeautifulSoup4的基礎(chǔ)知識,并通過實際代碼示例進(jìn)行演示,感興趣的可以了解下2024-02-02
python 使用cx-freeze打包程序的實現(xiàn)
這篇文章主要介紹了python 使用cx-freeze打包程序的實現(xiàn),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
python多進(jìn)程中的內(nèi)存復(fù)制(實例講解)
下面小編就為大家分享一篇python多進(jìn)程中的內(nèi)存復(fù)制(實例講解),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-01-01
Python?Type?Hints?學(xué)習(xí)之從入門到實踐
Type?Hints(類型注解)進(jìn)一步強(qiáng)化了Python是一門強(qiáng)類型語言的特性,它在?Python3.5?中第一次被引入。使用Type?Hints可以讓我們編寫出帶有類型的Python代碼,本文將詳細(xì)介紹一下Type?Hints,感興趣的小伙伴可以關(guān)注一下2021-11-11

