簡述
1.最近接到個任務是在管理頁面更改相機的某個參數,下載官方的sdk貌似沒有提供這個接口,所以只能自己寫爬蟲登錄發請求了。
1.主要步驟
1.1 發送get請求獲取到salt,sessionID,challenge等信息
http://admin:123456@192.168.1.80/ISAPI/Security/sessionLogin/capabilities?username=admin
1.2 再次發送這個請求,這次要帶上一個隨機數random。random生成規則如下:
timestamp = str(int(time.time()))
md5_hash = hashlib.md5(timestamp.encode()).hexdigest()
md5_substring = md5_hash[:8].replace(“#”, “”)
result = str(int(md5_substring, 16))[:8]
url += “&random=” + result
print(url)
1.3 最后拿到第二次獲得到salt,sessionId,challenge信息和加密的登錄密碼登錄
http://192.168.1.80/ISAPI/Security/sessionLogin?timeStamp=
1.4 問題注意
有個特別惡心的問題是requests的post庫會轉義尖括號。
使用來去除
unescaped_string = urllib.parse.unquote(validation)
最后成功的登錄截圖:
ps:有需要源碼的私信我