Как войти в страницу входа jsp с помощью запросов python [duplicate]

Использование std::stringstream, поскольку вы отлично работаете, и делайте именно то, что вы хотели. Если вы ищете другой способ сделать что-то, вы можете использовать std::find() / std::find_first_of() и std::string::substr() .

Вот пример:

#include 
#include 

int main()
{
    std::string s("Somewhere down the road");
    std::string::size_type prev_pos = 0, pos = 0;

    while( (pos = s.find(' ', pos)) != std::string::npos )
    {
        std::string substring( s.substr(prev_pos, pos-prev_pos) );

        std::cout << substring << '\n';

        prev_pos = ++pos;
    }

    std::string substring( s.substr(prev_pos, pos-prev_pos) ); // Last word
    std::cout << substring << '\n';

    return 0;
}

58
задан Marcus Johnson 9 August 2012 в 23:39
поделиться

4 ответа

Если информация, которую вы хотите, находится на странице, которую вы направляете сразу после входа в систему ...

Вместо этого вызывается ваша ck переменная payload, как в python-запросах docs:

payload = {'inUserName': 'USERNAME/EMAIL', 'inUserPass': 'PASSWORD'}
url = 'http://www.locationary.com/home/index2.jsp'
requests.post(url, data=payload)

В противном случае ...

См. https://stackoverflow.com/a/17633072/111362 ниже.

26
ответ дан Community 3 September 2018 в 16:21
поделиться

Узнайте имена входов, используемых в форме веб-сайтов для имен пользователей <...name=username.../> и паролей <...name=password../>, и замените их в приведенном ниже скрипте. Также замените URL-адрес на нужную страницу для входа в систему.

login.py

#!/usr/bin/env python

import requests
from requests.packages.urllib3.exceptions import InsecureRequestWarning
requests.packages.urllib3.disable_warnings(InsecureRequestWarning)
payload = { 'username': 'user@email.com', 'password': 'blahblahsecretpassw0rd' }
url = 'https://website.com/login.html'
requests.post(url, data=payload, verify=False)

Использование disable_warnings(InsecureRequestWarning) отключит любое вывод из сценария при попытке входа на сайты с непроверенными сертификатами SSL.

Дополнительно:

Чтобы запустить этот сценарий из командной строки в системе на базе UNIX, поместите его в каталог, то есть home/scripts, и добавьте этот каталог в свой путь в ~/.bash_profile или аналогичный файл, используемый терминалом.

# Custom scripts
export CUSTOM_SCRIPTS=home/scripts
export PATH=$CUSTOM_SCRIPTS:$PATH

Затем создайте ссылку на этот сценарий python внутри home/scripts/login.py

ln -s ~/home/scipts/login.py ~/home/scipts/login

Закройте свой терминал, запустите новый, login

1
ответ дан David 3 September 2018 в 16:21
поделиться

Позвольте мне попытаться сделать это простым, предположим, что URL-адрес сайта http://example.com/ , и давайте предположим, что вам нужно зарегистрироваться, заполнив имя пользователя и пароль, поэтому мы перейдем к теперь на странице входа в систему http://example.com/login.php и просмотрите исходный код и найдите URL-адрес действия, который он будет в теге формы, например

 <form name="loginform" method="post" action="userinfo.php">

теперь возьмите userinfo.php, чтобы сделать абсолютный URL-адрес, который будет « http://example.com/userinfo.php », теперь запускает простой скрипт python

import requests
url = 'http://example.com/userinfo.php'
values = {'username': 'user',
          'password': 'pass'}

r = requests.post(url, data=values)
print r.content

Я надеюсь, что это когда-нибудь поможет кому-то.

28
ответ дан Tarun Venugopal Nair 3 September 2018 в 16:21
поделиться

Я знаю, что вы нашли другое решение, но для таких, как я, которые находят этот вопрос, ищет то же самое, его можно достичь с помощью запросов следующим образом:

Во-первых, как это сделал Маркус, проверьте источник формы входа, чтобы получить три части информации - URL-адрес, на который отправляется форма, и атрибуты имени полей имени пользователя и пароля. В его примере они являются inUserName и inUserPass.

После того, как вы это получили, вы можете использовать экземпляр requests.Session(), чтобы сделать запрос на отправку URL-адреса входа, в котором ваши данные для входа указаны в качестве полезной нагрузки.

Предполагая, что попытка входа в систему была успешной, вы можете просто использовать экземпляр сеанса, чтобы выполнить запросы из экземпляра сеанса. для дальнейших запросов на сайт. Файл cookie, который идентифицирует вас, будет использоваться для авторизации запросов.

Пример

import requests

# Fill in your details here to be posted to the login form.
payload = {
    'inUserName': 'username',
    'inUserPass': 'password'
}

# Use 'with' to ensure the session context is closed after use.
with requests.Session() as s:
    p = s.post('LOGIN_URL', data=payload)
    # print the html returned or something more intelligent to see if it's a successful login page.
    print p.text

    # An authorised request.
    r = s.get('A protected web page url')
    print r.text
        # etc...
156
ответ дан ZygD 3 September 2018 в 16:21
поделиться
Другие вопросы по тегам:

Похожие вопросы: