使用request實現手工輸入驗證碼登入

2022-06-14 18:12:14 字數 2217 閱讀 6329

我們的目標**是這個登入頁面是這個

import

requests

import

json

url = '

'headers =

session =requests.session()

html = session.get(url=url,headers=headers)

搜尋我們使用request的session來儲存會話並且進入登入頁面,他是這樣的

我們先來獲取驗證碼,直接通過html.text來獲取是找不到他裡面的的url的。

<

div

class

="form-group"

>

<

label

for="logincaptcha"

>驗證碼

label

>

<

div

class

="code-group02"

>

<

input

type

="text"

class

="form-control"

name

="login[captcha]"

v-model

="login.captcha"

id="logincaptcha"

autocomplete

="off"

placeholder

="驗證碼"

>

<

img

class

="captcha"

v-on:click

="oncaptcha"

id="logincaptchaimg"

>

div>

div>

html.text這裡面是沒有src的,他是渲染出來的, 所有我們去找這個js,發現他的函式就在login.js裡面。

oncaptcha: function(e), function(response));
在login.js我們可以找到這個,可以發現他是通過ajax給/site/captcha?refresh=true傳送獲取到資料然後將裡面的response.body.url也就是驗證碼的url設定給src標籤。

我們找一下site/captcha?refresh=true這個的包,就是『這個url。他裡面的內容是這樣

然後我們看到裡面的url,其實他就是驗證碼的url。既然我們找到的url就簡單了,將他儲存下來然後手動檢視輸入驗證碼即可。全部**在這

import

requests

import

json

url = '

'headers =

session =requests.session()

html = session.get(url=url,headers=headers)

url1 = '

'headers[

'referer

'] =url

html = session.get(url=url1,headers=headers)

img =json.loads(html.text)

url2 = '

'+ img['

url'

]img = session.get(url=url2)

with open(

'img.png

','wb

') as f:

f.write(img.content)

img = input('

請輸入驗證碼')

data =

url='

'data_headers =

html = session.post(url=url,headers=data_headers,data=data)

url='

/'html = session.get(url=url,headers=headers)

print

(html)

print(html.text)

大概步驟是先請求登入頁面,然後通過抓包找到url,接著提交請求。

ssh非手工輸入密碼

工作的時候程序需要手工去check伺服器的執行狀況,有的時候要check很多臺,手工的話,就很繁瑣,而且也容易出錯。我就想著寫乙個指令碼來完成,想法是指令碼通過ssh連上遠端伺服器,然後執行命令,返回結果。但是發現需要乙個乙個輸入密碼,這也很鬱悶,網上找了找,發現可以新增認證關係,但是如果手工一台一...

手工實現LinkedList

參照其底層 按照自己的理解實現了linkedlist的一些基本功能。如果對c和c 指標了解一下,理解起來非常快。package cn.liu.mylinkedlist 結點 public class node 構造器,來傳資料 public node object element package c...

kmeans手工實現

演算法原理 kmeans的計算方法如下 1 隨機選取k個中心點 2 遍歷所有資料,將每個資料劃分到最近的中心點中 3 計算每個聚類的平均值,並作為新的中心點 4 重複n次,直到這k個中心點不再變化 收斂了 或執行了足夠多的迭代 實現 import math import random class c...