Ошибка входа в ASP. NET ERP-сеть с использованием python запросов. - PullRequest
0 голосов
/ 13 февраля 2020

я пытаюсь войти в ASP. NET ERP-сеть, потому что мне интересно, как войти в систему с помощью python запросов, но я не могу войти, это мой код:

url=http://xxx.xxx.xxx.xxx/some_site/erp/erp_login.aspx
username=1400020
password="mypassword"
import requests
from bs4 import BeautifulSoup
headers={'User-Agent': 'Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0'}
my_session = s.Session()
my_session.headers.update(headers)
request=my_session.get(url)
beauti=BeautifulSoup(request.content)

и это мой анализ HTML

image

, затем я строю данные для запроса

VIEWSTATE=beau.find(id="__VIEWSTATE")['value']
VIEWSTATEGENERATOR=beau.find(id="__VIEWSTATEGENERATOR")['value']
EVENTVALIDATION=beau.find(id="__EVENTVALIDATION")['value']
txtUserID=username
txtPassword=password

login_data:{\
     "__VIEWSTATE":VIEWSTATE,\
     "__VIEWSTATEGENERATOR":VIEWSTATEGENERATOR,\
     "__EVENTVALIDATION":EVENTVALIDATION,\
     "txtUserID":txtUserID,\
     "txtPassword":txtPassword}

request_2 = my_session.post(url, data=login_data)

, затем анализирую html и кажется, что страница не меняется

image

мой вопрос, что я пропустил ..? спасибо за объяснение

1 Ответ

0 голосов
/ 14 февраля 2020

После сбоя и пар повторных попыток я нашел проблемы, вот решение:

  1. Я анализирую http-пакет с помощью Wireshark, очевидно, что мне не хватает некоторого значения параметра в моем логин_данных есть ( '__ LASTFOCUS' , __ EVENTTARGET , __ EVENTARGUMENT и cmdLogin ), поэтому мой dict login_data закончился так:

    1018 * { '__ LASTFOCUS': / wEPDwUKMTkwNzM5ODc0MA9kFgICBQ9kFgYCAQ9kFgQCAQ9kFgQCCw8PFgIeBFRleHQFJTw8PCZuYnNwOyZuYnNwO0FEVC1TSlUmbmJzcDsmbmJzcDs + Pj5kZAINDw8WAh8ABV5GaXJlZm94Njggc3NzIEZpcmVmb3ggc3NzIE1vemlsbGEvNS4wIChYMTE7IExpbnV4IHg4Nl82NDsgcnY6NjguMCkgR2Vja28vMjAxMDAxMDEgRmlyZWZveC82OC4wZGQCBQ9kFgICAQ9kFgICAw8QZGQWAGQCAw8WAh4HVmlzaWJsZWhkAgkPZBYCZg9kFgICAQ9kFgJmD2QWAmYPZBYCAgEPPCsACwBkZGOx36TJfGYxlXBQnUWT0oEjFZMe ' «__VIEWSTATEGENERATOR '', '__EVENTTARGET': '', '__EVENTARGUMENT':: '', '__VIEWSTATE'' ':' FD7250D9 ',' __EVENTVALIDATION ':' / wEWBAL3ltW / BgLT8dy8BQK1qbSRCwKFoZPNA1abehnNI7 / HTq49 4AZnY2PWZ6rX ',' txtUserID ':' myuserID, 'txtPassword': 'myPassword', 'cmdLogin': 'Login'}
  2. отправлять данные с запросами

    r2 = questions.post (url, data = login_data)

и это работает !!, поэтому мой вывод, что если мы хотим опубликовать данные для проверки формы с python, запросы не пропускают html тег , который имеет значение атрибута .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...