我想去链接,然后把数据发送到窗体,然后再发送到窗体本身,通过请求这只是通过需要在链接中指定的参数来处理的,但是我不能得到完全正确的链接来发送窗体,也就是说,我知道链接,并且它是如何在发送数据后形成的我不知道。你知道吗
如果打开“开发工具”并转到“网络”面板,参数中会显示以下行:
Query string
action Login
module Users
Form data
__vtrftk sid: 34b6b3446d78b01ccb1e5678c89c86365a280a51,1521970011
password you
username hey
如果您转到标题并单击Edit And Resend按钮:将会有一个"Request Body"
在那里和那里所有三个字段,csrf,user和pass。你知道吗
__vtrftk=sid%3A34b6b3446d78b01ccb1e5678c89c86365a280a51%2C1521970011&username=hey&password=you
如何使用请求通过python脚本登录?你知道吗
这是请求http://74.207.247.199:8181/index.php?module=Users&action=Login的链接
这是我糟糕的剧本
import sys
import requests
from requests import Session
from bs4 import BeautifulSoup
target = 'http://74.207.247.199:8181/'
sec_target = 'http://74.207.247.199:8181/index.php?module=Users&action=Login'
def main(target, sec_target):
with requests.Session() as session:
# start of auth
s = Session()
get_csrf_token = s.get(target).text
soup = BeautifulSoup(get_csrf_token, 'lxml')
find_scrf_token_body = soup.find('div', id='loginDiv')
find_csrf_token_input = find_scrf_token_body.find('input', {"name":"__vtrftk"}).attrs['value']
#payload ={'__vtrftk':find_csrf_token_input+'&username=someuser&password=somepass'}
headers = {
'__vtrftk': find_csrf_token_input,
'username': 'someuser',
'password': 'somepass',
'User-Agent':"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:51.0) Gecko/20100101 Firefox/51.0",
'Content-Type': 'application/x-www-form-urlencoded',
'Connection': 'keep-alive',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Referer': 'http://74.207.247.199:8181/',
}
# Отправляем данные в POST, в session записываются наши куки
f = s.post(sec_target, headers=headers)
g = s.get('http://74.207.247.199:8181/index.php?module=Users&action=Login').text
soup = BeautifulSoup(g, 'lxml')
find_alert_body = soup.find('div', id='loginDiv')
find_alert = find_alert_body.find('div', class_='alert alert-error')
print(find_alert)
print(f.url)
if __name__ == '__main__':
main(target, sec_target)
目前没有回答
相关问题 更多 >
编程相关推荐