Как войти в аккаунт на сайте с помощью Python & Requests - PullRequest
0 голосов
/ 29 сентября 2018

Я пытаюсь войти на 2 учетные записи веб-сайтов с помощью модуля Python 3 и Requests.

1-й веб-сайт: https://www.amundi -ee.com / psf / # login и янеобходимо получить информацию на этой странице после: https://www.amundi -ee.com / psf / # avoirs
2-й веб-сайт: https://zone.mfgl.com/pensions/burohappold/index.asp (после входа в систему происходит перенаправление наhttps://zone.mfgl.com/pensions/burohappold/login2.asp для другого дополнительного случайного контрольного вопроса в пределах 4/5 вариантов, таких как место рождения или имя первого питомца) и после того, как мне нужно получить информацию на этой странице: https://zone.mfgl.com/pensions/burohappold/statement-page.asp

Идеячтобы получить личную информацию об учетной записи, чтобы обработать ее в другом сценарии.Я знаю, как использовать запросы (на базовом уровне), но я борюсь с этими двумя конкретными веб-сайтами (я полагаю, из-за способа, которым пароль должен быть введен для первого, путем нажатия, и из-за перенаправления навторой).

import requests
import logging

logging.basicConfig(level=logging.DEBUG)

URL1 = 'https://www.amundi-ee.com/psf/#login'
URL2 = 'https://www.amundi-ee.com/psf/#'
URL3 = 'https://zone.mfgl.com/pensions/burohappold/index.asp'
URL4 = 'https://zone.mfgl.com/pensions/burohappold/login2.asp'
URL5 = 'https://zone.mfgl.com/pensions/burohappold/statement-page.asp'

payload1 = {
    'username' : '000000',
    'password' : '000000'
}
payload2 = {
    'username' : '000000',
    'password' : '000000'
}
sub_payload1 = {
    'password' : 'aaaaaa'
}
sub_payload2 = {
    'password' : 'bbbbbb'
}
sub_payload3 = {
    'password' : 'cccccc'
}

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36'}


with requests.Session() as c:
    c.post(URL1, headers=headers, data=payload1)
    r = c.get(URL2, headers=headers)
    print(r.text)

with requests.Session() as d:
    d.post(URL3, headers=headers, data=payload2)
    #How to manage the redirection here to URL4?
    #How to test which extra security question is supplied and submit corresponding sub_payload?
    s = d.get(URL5, headers=headers)
    print(s.text)

Для 2-го веб-сайта я, честно говоря, понятия не имею, как обрабатывать перенаправление и тестирование вопросов ...

Делать полезную нагрузку 'username' / 'password' должнысоответствовать конкретным именам из этих веб-форм?

Спасибо за любую помощь или руководство (я новичок).

1 Ответ

0 голосов
/ 30 сентября 2018

Так что мне удалось заставить его работать на 2-м сайте, ниже кода, если кому-то интересно.Там было скрытое поле формы.Я открою новую тему для 1-го сайта.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...