繁体   English   中英

使用 Python 登录时出现问题

[英]Issues with logging in using Python Requests

注意:我在一个网站上这样做,其唯一目的是用于自动化测试

import requests

Payload = {
    'username': 'test',
    'password': 'test'
}

p = requests.post('https://petstore.octoperf.com/actions/Account.action', data=Payload)

print(p.text)

有效负载中的凭据是正确的,当我查看它打印的内容时,我没有看到“注销”,我应该看看它是否已成功登录。

好的,您缺少很多信息。 您的有效负载不完整,您缺少signon字段和隐藏字段_sourcePage__fp 这些是您提交的表单,因此您必须先发出GET请求才能捕获这些值。 您还需要jsessionid cookie,因此请求 session 应该很有用

import requests
from bs4 import BeautifulSoup

payload = {
    'username': 'test',
    'password': 'test',
    'signon': 'Login'
}
url='https://petstore.octoperf.com/actions/Account.action'
# use a session to keep cookies alive
with requests.session() as s:
    
    # make a get first to scrape input values
    r = s.get(url)
    
    # grab inputs and add their values to the payload
    soup=BeautifulSoup(r.text, 'lxml')
    inputs=soup.select('form[action*="Account"] input[type="hidden"]')
    for inp in inputs:
        payload[inp.attrs['name']]=inp.attrs['value']
        
    # and connect finally with all data
    r = s.post(url, data=payload)
    soup=BeautifulSoup(r.text, 'lxml')
    print(soup.select_one('#WelcomeContent').text.strip())
    >>> Welcome test!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM