Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/306.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用Python&;请求_Python_Authentication_Redirect_Python Requests - Fatal编程技术网

如何使用Python&;请求

如何使用Python&;请求,python,authentication,redirect,python-requests,Python,Authentication,Redirect,Python Requests,我正在尝试使用Python 3和请求模块登录到两个网站帐户。 第一个网站是:,我需要在: 第二个网站是:(登录后,有一个重定向到的额外的随机安全问题在4/5的选择,如出生地,或第一个宠物名)和之后,我需要在这个页面上抓取信息: 其思想是检索个人帐户信息,并在另一个脚本中进行处理。 我知道如何使用请求(在基本层面上),但我正在与这两个特定的网站进行斗争(我相信这是因为第一个网站必须通过点击输入密码,第二个网站需要重定向) 对于第二个网站,我真的不知道如何处理重定向和问题测试 有效载荷“用户名”/“

我正在尝试使用Python 3和请求模块登录到两个网站帐户。

第一个网站是:,我需要在:
第二个网站是:(登录后,有一个重定向到的额外的随机安全问题在4/5的选择,如出生地,或第一个宠物名)和之后,我需要在这个页面上抓取信息:

其思想是检索个人帐户信息,并在另一个脚本中进行处理。 我知道如何使用请求(在基本层面上),但我正在与这两个特定的网站进行斗争(我相信这是因为第一个网站必须通过点击输入密码,第二个网站需要重定向)

对于第二个网站,我真的不知道如何处理重定向和问题测试

有效载荷“用户名”/“密码”是否必须与这些网站表单中的特定名称匹配


感谢您的帮助或指导(我是初学者)。

因此,我设法让它在第二个网站上运行,如果有人感兴趣,请参见下面的代码。有一个隐藏的表单字段。 我将为第一个网站打开一个新主题

import requests, time
from lxml import html

LOGIN = 'https://zone.mfgl.com/pensions/burohappold/index.asp'
LOGIN2 = 'https://zone.mfgl.com/pensions/burohappold/login2.asp'
PROTECTED_PAGE = 'https://zone.mfgl.com/pensions/burohappold/statement-page.asp'
payload = {
    'username': 'username',
    'password': 'password',
    'action': 'login'
}
s_payload1 = {
    'answer': 'answer',
    'correctanswer': 'answer',
    'action': 'submit'
}
s_payload2 = {
    'answer': 'answer',
    'correctanswer': 'answer',
    'action': 'submit'
}
s_payload3 = {
    'answer': 'answer',
    'correctanswer': 'answer',
    'action': 'submit'
}

with requests.session() as s:
    s.post(LOGIN, data=payload)
    time.sleep(2)
    r = s.get(LOGIN2)
    #2nd login question test to submit appropriate sub_payload
    if 'XXXX' in r.text:
        s.post(LOGIN2, data=s_payload1)
    if 'YYYY' in r.text:
        s.post(LOGIN2, data=s_payload2)
    if 'ZZZZ' in r.text:
        s.post(LOGIN2, data=s_payload3)
    f = s.get(PROTECTED_PAGE)

tree = html.fromstring(f.content)
a = tree.xpath('//td/text()')
index = a.index("Total")
Funds = a[32]
print(Funds)

了解您可以获得重定向url
req=d.post(URL3,headers=headers,data=payload2)
req.url
import requests, time
from lxml import html

LOGIN = 'https://zone.mfgl.com/pensions/burohappold/index.asp'
LOGIN2 = 'https://zone.mfgl.com/pensions/burohappold/login2.asp'
PROTECTED_PAGE = 'https://zone.mfgl.com/pensions/burohappold/statement-page.asp'
payload = {
    'username': 'username',
    'password': 'password',
    'action': 'login'
}
s_payload1 = {
    'answer': 'answer',
    'correctanswer': 'answer',
    'action': 'submit'
}
s_payload2 = {
    'answer': 'answer',
    'correctanswer': 'answer',
    'action': 'submit'
}
s_payload3 = {
    'answer': 'answer',
    'correctanswer': 'answer',
    'action': 'submit'
}

with requests.session() as s:
    s.post(LOGIN, data=payload)
    time.sleep(2)
    r = s.get(LOGIN2)
    #2nd login question test to submit appropriate sub_payload
    if 'XXXX' in r.text:
        s.post(LOGIN2, data=s_payload1)
    if 'YYYY' in r.text:
        s.post(LOGIN2, data=s_payload2)
    if 'ZZZZ' in r.text:
        s.post(LOGIN2, data=s_payload3)
    f = s.get(PROTECTED_PAGE)

tree = html.fromstring(f.content)
a = tree.xpath('//td/text()')
index = a.index("Total")
Funds = a[32]
print(Funds)