Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 657

Авторизация на сайте

06.01.2023, 03:11. Показов 1549. Ответов 9

Студворк — интернет-сервис помощи студентам
Всем привет!

Есть код, который должен авторизовываться на сайте и возвращать имя пользователя из аккаунта:

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import requests
from bs4 import BeautifulSoup
 
url = 'https://secure.simmarket.com/login.php?action=process'
url_next = 'https://secure.simmarket.com/default-en.html'
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
                  }
 
s = requests.Session()
req = s.post(url, data={"email_address" : "stepanovatai@yandex.ru", 
                        "password": "stepanovatai"},
                  headers=headers)
 
get_next = s.get(url_next)
soup = BeautifulSoup(get_next.text, "html.parser")
name = soup.find('div', class_='header-menu-head-heading')
print(name)
Но код ничего не возвращет. Помогите разобраться. В чем проблема ?
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
06.01.2023, 03:11
Ответы с готовыми решениями:

Авторизация на сайте
Недавно начал заниматься django. Возник вопрос как сделать регистрацию и авторизацию на сайте? Буду сильно благодарен за ответ особенно...

Авторизация на сайте
Доброго времени знатоки! Есть код на питоне: //from selenium import webdriver from selenium.webdriver.chrome.service import...

Авторизация на сайте
Всем привет! Есть код, который должен возвращать строку из аккаунта пользователя. Не проходит авторизация. Не пойму почему. ...

9
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
06.01.2023, 09:50
Orlov1, в том что там нет этих данных, вот тут они есть https://secure.simmarket.com/account_edit.php
0
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 657
06.01.2023, 16:28  [ТС]
Welemir1, ошибаетесь. Вот тут :

HTML5
1
2
3
4
<div class="header-menu-head-heading">
                    [B]Tai Stepanova[/B]
                    <span class="header-menu-head-subheading nobr">Your ID : 498164</span>
                </div>
Даже если код переписать так и парсить со страницы личных данных аккаунта :

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
import requests
from bs4 import BeautifulSoup
 
url = 'https://secure.simmarket.com/login.php?action=process'
url_next = 'https://secure.simmarket.com/account_edit.php'
 
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'
                  }
 
s = requests.Session()
req = s.post(url, data={"email_address" : "stepanovatai@yandex.ru", 
                        "password": "stepanovatai"},
                  headers=headers)
 
get_next = s.get(url_next)
soup = BeautifulSoup(get_next.text, "html.parser")
name = soup.findAll('td', class_='form_td')
print (name)
Код не возвращает требуемые данные.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
06.01.2023, 17:17
Orlov1, там не все просто, в коде увидишь причину проблем
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
>>> url = 'https://secure.simmarket.com/login.php?action=process'
>>> import requests
>>> from lxml import html
>>> s = requests.Session()
>>> headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36', 'Referer': 'https://secure.simmarket.com/account_edit.php'}
>>> req = s.post(url, data={"email_address" : "stepanovatai@yandex.ru","password": "stepanovatai"}, headers=headers)
>>> 'Stepanova' in req.text
False
>>> headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36', 'Sec-Fetch-User': '?1', 'Referer': 'https://secure.simmarket.com/account_edit.php'}
>>> req = s.post(url, data={"email_address" : "stepanovatai@yandex.ru","password": "stepanovatai"}, headers=headers)
>>> 'Stepanova' in req.text
True
>>> parsed = html.fromstring(req.text)
>>> vals = parsed.xpath('//div[@class="header-menu-head-heading"]')
>>> vals[0].text
'\n\t\t\t\t\tTai Stepanova\n\t\t\t\t\t'
>>> vals[0].text_content().replace('\t','')
'\nTai Stepanova\nYour ID : 498164\n'
1
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 657
06.01.2023, 22:59  [ТС]
Welemir1, благодарю за показательный код.
Подскажите как определить, что нужно передавать и эти параметры в запросе ?:
Python
1
'Sec-Fetch-User': '?1', 'Referer': 'https://secure.simmarket.com/account_edit.php'}
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
07.01.2023, 10:05
Orlov1, часто это происходит именно путем проб и ошибок. Я по опыту знаю что иногда все дело в каком то поле или куки, потому начал с наиболее подозрительных. Они и сработали. В общем алгоритм таков (если в результате нет того, что ищешь):
1) реквестами получаешь текст страницы и смотришь есть ли вообще в нем искомое
2) если нет то через браузер смотришь -не запрашивается ли эта инфа через аякс запросы или вебсокеты
3) если нет, то значит дело в самом запросе и начинаешь смотреть как именно браузер его делает, что в нем есть. Обычно имеет значение именно юзер-агент, куки, реферер или поля со специфическими именами. И начинаешь подбирать их, чтобы заработало.
0
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 657
07.01.2023, 15:21  [ТС]
Welemir1, как не странно, но код работает со стандартным user-agent.
Код записан так и он работает, только дважды нужно отправить post запрос, иначе не проходит авторизация. Не пойму пока почему.
Принципиально ошибка была в методе парсинга.

Почему два запроса нужно ?

Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
import requests
from lxml import html
 
url = 'https://secure.simmarket.com/login.php?action=process'
s = requests.Session()
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36'}
username = "stepanovatai@yandex.ru"
password = "stepanovatai"
 
req = s.post(url, data={'email_address': username, 'password': password}, headers=headers)
req = s.post(url, data={'email_address': username, 'password': password}, headers=headers)
 
try:
    parsed = html.fromstring(req.text)
    vals = parsed.xpath('//div[@class="header-menu-head-heading"]')
    vals1 = (vals[0].text_content().replace('\t',''))
    if "Your ID" in vals1:
        print ('Имя пользователя : ' + vals1)
except:
    print('Ошибка авторизации')
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
07.01.2023, 15:33
возможно эти поля при первом запросе в сессию приходят, потому со второго запроса и работает. Зачем делать 2 запроса, если можно 1?
0
 Аватар для Orlov1
100 / 42 / 7
Регистрация: 03.02.2019
Сообщений: 657
07.01.2023, 16:26  [ТС]
Цитата Сообщение от Welemir1 Посмотреть сообщение
Зачем делать 2 запроса, если можно 1?
С одним запросом авторизация не проходит. В том - то и вопрос.

Цитата Сообщение от Welemir1 Посмотреть сообщение
возможно эти поля при первом запросе в сессию приходят,
Когда я вновь запускаю код сессия ведь новая открывается ?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7392 / 4819 / 1246
Регистрация: 30.03.2015
Сообщений: 13,694
Записей в блоге: 29
07.01.2023, 16:56
Цитата Сообщение от Orlov1 Посмотреть сообщение
Когда я вновь запускаю код сессия ведь новая открывается ?
да

Цитата Сообщение от Orlov1 Посмотреть сообщение
С одним запросом авторизация не проходит. В том - то и вопрос.
я же вот выше тебе писал пример, с ним не проходит авторзация?

Добавлено через 13 минут
Orlov1,
поправь
Python
1
2
3
4
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
    'Cookie': 'cookie_test=please_accept_for_session for secure.simmarket.com/;'
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
07.01.2023, 16:56
Помогаю со студенческими работами здесь

Авторизация на сайте requests
Здравствуйте, заморочился с авторизацией на сайте informatics.mccme.ru библиотекой requests.post, но что-то никак не удаётся, много чего...

Авторизация на сайте в цикле
Всем привет! Есть код чекера аккаунтов windscribe: import requests from bs4 import BeautifulSoup from colorama import Fore,...

Авторизация на сайте, requests, post
Всем привет! Буду благодарен за помощь. Прочитал очень много примеров и решений, но ничего не помогло. Есть злой сайт -...

Авторизация по ЭЦП VIP NET на сайте
Нужно войти на сайт через госуслуги по эцп. Подпись выпущена под Vip Net. Где почитать? Что поучить?

Авторизация с использованием post запроса на сайте
Моя первая попытка авторизации на сайте. import requests def autoriz(): session = requests.Session() url=...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru