Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 22.02.2023
Сообщений: 4

Парсер файлов на Python. Не проходит авторизация

22.02.2023, 15:54. Показов 1117. Ответов 4

Студворк — интернет-сервис помощи студентам
Добрый день. Форумом пользуюсь давно, однако вопрос задаю впервые.

Вопрос: При авторизации по логину и паролю на сайте не проходит авторизация, данные введены верные.

Код сгенерирован нейронкой, пробовал различные методы входа, через библиотеку selenium, по куки. (Не просто попросил код у нейронки и запустил его без изменений). Не работает. Сижу вторые сутки пытаюсь разобраться в чем дело, но понять не могу.

Суть скрипта(кратко):

Авторизуется на странице входа, переходит на страницу со списком файлов, ищет файл, в котором присутствует слово "fk_gsem", если такой есть - скачивает на рабочий стол.

----------------------------------
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
import os
import requests
from bs4 import BeautifulSoup
 
# Логин и пароль для авторизации
username = 'your_username'
password = 'your_password'
 
# Создаем сессию, чтобы сохранить куки после авторизации
with requests.Session() as session:
    # Отправляем POST-запрос с логином и паролем, чтобы авторизоваться
    login_url = 'https://sts.urfu.ru/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fistudent.urfu.ru&wctx=https%3a%2f%2fistudent.urfu.ru%2f_auth%2fdefault.aspx'
    login_data = {'UserName': username, 'Password': password}
    response = session.post(login_url, data=login_data)
 
    # Проверяем успешность авторизации
    if 'Вход в систему выполнен' not in response.text:
        print('Не удалось авторизоваться')
        exit()
 
    # Если авторизация прошла успешно, переходим на страницу с файлами
    files_url = 'https://istudent.urfu.ru/s/fileslist'
    response = session.get(files_url)
 
    # Парсим HTML-код страницы с файлами с помощью BeautifulSoup
    soup = BeautifulSoup(response.text, 'html.parser')
 
    # Ищем все ссылки на файлы Excel на странице
    excel_links = soup.select('a[href$=".xlsx"]')
 
    # Перебираем все ссылки на файлы Excel, пока не найдем нужный
    for link in excel_links:
        # Переходим на страницу файла
        file_url = link['href']
        file_response = session.get(file_url)
 
        # Если файл содержит слово "fk_gsem", то скачиваем его и выходим из цикла
        if 'fk_gsem' in file_response.content.decode('utf-8'):
            # Получаем имя файла из ссылки
            filename = file_url.split('/')[-1]
 
            # Скачиваем файл и сохраняем на рабочий стол с новым именем
            with open(os.path.join(os.path.expanduser('~'), 'Desktop', 'new_file.xlsx'), 'wb') as f:
                f.write(file_response.content)
            break
    else:
        print('Не найдено ни одного файла, содержащего "fk_gsem"')
----------------------------------
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
22.02.2023, 15:54
Ответы с готовыми решениями:

Авторизация на сайте через парсер Python
Хочу написать парсер для сайта, где необходимо пройти авторизацию, чтобы получить доступ к определённым страницам. Авторизацию делал по...

Не проходит авторизация
Доброго времени суток. Помогите пожалуйста найти проблему: Для авторизации использую данную функцию проверки на пароль и блокировку,...

Не проходит авторизация
Всем привет. Есть веб-интерфейс для создания аудио-конференций. Проблема заключается в том, что не могу залогиниться в админку. Создаю базу...

4
2431 / 1474 / 633
Регистрация: 01.11.2021
Сообщений: 2,269
22.02.2023, 22:05
В логин должно дописываться @at.urfu.ru, запрос должен быть вида.
Code
1
UserName=user_login%40at.urfu.ru&Password=user_password&AuthMethod=FormsAuthentication
Через Selenium вообще все просто вроде бы.
Python
1
2
3
4
5
6
7
8
9
10
driver.get('https://sts.urfu.ru/adfs/ls/?wa=wsignin1.0&wtrealm=https%3a%2f%2fistudent.urfu.ru&wctx=https%3a%2f%2fistudent.urfu.ru%2f_auth%2fdefault.aspx')
 
login = driver.find_element(By.XPATH, "//input[@id='userNameInput']")
login.send_keys('user_login')
 
password = driver.find_element(By.XPATH, "//input[@id='passwordInput']")
password.send_keys('user_password')
 
submit = driver.find_element(By.XPATH, "//span[@id='submitButton']")
submit.click()
0
2 / 2 / 0
Регистрация: 22.02.2023
Сообщений: 4
23.02.2023, 19:52
Когда с авторизацией не получается я захожу через undetected_chromedriver или selenium, прохожу вручную авторизацию, забираю печеньки и потом пользуюсь. Для requests cookies сохраняю в json-файл. Может это по деревенски , но...))
0
3 / 3 / 0
Регистрация: 28.12.2020
Сообщений: 22
25.02.2023, 00:37
Как сказал комментатор выше - заходи через селениум вручную с забиранием куки через pickles. Удобно пользоваться юпитером в случае, когда пошагово работаешь с кодом и селениумом. А потом когда куки заберёшь в файл - будешь спокойно логиниться
1
0 / 0 / 0
Регистрация: 22.02.2023
Сообщений: 4
26.02.2023, 11:47  [ТС]
Да, я так и сделал. Спасибо за помощь Переписал код под селениум, он автоматом все открывает и сохраняет сессию.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
26.02.2023, 11:47
Помогаю со студенческими работами здесь

Авторизация не проходит
Доброго времени суток! Помогите пожалуйста понять, куда дальше рыть в авторизации: 1) Есть таблица: CREATE TABLE IF NOT EXISTS...

Авторизация не проходит
написал такой скрипт, только вот не пойму почему всегда срабатывает что "авторизация не прошла", хотя введенные данные в БД...

Не проходит авторизация на сайте
<?php //Строки для занесения логина, пароля и имени if (isset($_POST)) { $login = $_POST; if ($login == '') { unset($login);} } if...

Не проходит авторизация пользователя
в программе не осуществляется авторизация пользователя, пишет ошибки:

Dovecot не проходит авторизация
Приветствую! Не могу зайти с Roundcube и с Thunderbird Кто знает, что не так? Логи: Roundcube Jul 14 01:55:16 vmi44724 dovecot:...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru