您好,登錄后才能下訂單哦!
小編給大家分享一下如何使用python實現(xiàn)自動登錄后臺管理系統(tǒng),希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!
首先感謝下網(wǎng)絡(luò)上的各位大神和博主,通過學習各位大神的文章,才實現(xiàn)了該腳本
①首先瀏覽器運行真是系統(tǒng)通過fiddler抓包,抓取到登錄地址(后面的地址和頭部信息等都是通過fiddler抓取的)
并獲取頭信息,header信息里面Accept-Encoding: gzip, deflate去掉吧,免得后面提取頁面的url時無法解碼,通過代碼實現(xiàn)后,這個時候回返回html文本,從文本里面獲取下一步要進入的系統(tǒng)的地址,這個地址已經(jīng)附上cookie即token了,只有經(jīng)過了這一步請求,才能進行下一步的對系統(tǒng)里面的內(nèi)容進行操作(之前沒有經(jīng)過這一步,就進行了具體操作的url請求,總是返回重定位到登錄界面)。
②然后再進行這個帶token的url的請求
③請求完成后即可進行想要的操作了
下面直接上代碼,有一些信息是公司的信息,我直接屏蔽換成通用字符串
# coding=utf-8 import urllib.request import urllib import http.cookiejar from database_functions import * import re # 正則表達式匹配規(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)進行修改 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)
看完了這篇文章,相信你對“如何使用python實現(xiàn)自動登錄后臺管理系統(tǒng)”有了一定的了解,如果想了解更多相關(guān)知識,歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。