Уведомления

Группа в Telegram: @pythonsu

#1 Май 3, 2022 22:38:26

BieKuf
Зарегистрирован: 2022-05-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Почему пропадает авторизация после передачи сайта в Beautifulsoup

Подскажите пожалуйста почему пропадает авторизация после передачи страчки в Beautifulsoup. Я новичек в этом, но как я понимаю мы в суп просто передаем страчку для дальнейшей обработки. Код:

 import re
from requests_html import HTMLSession
from requests.auth import HTTPBasicAuth
from bs4 import BeautifulSoup as Soup
s = HTMLSession()
s.auth = HTTPBasicAuth("Testins", "testtest123")
response = s.get('https://www.audit-it.ru/buh_otchet/7736050003_pao-gazprom')
response.html.render(scrolldown=True, sleep=5)
soup = Soup(response.html.raw_html, 'html.parser')
def to_int(item: str):
    return int(val) if (
        val := re.sub(r'[^\d-]|-(?!\d)|(?<!^)-', '',
            re.sub(r'\((.+)\)', r'-\1', item))) else None
cells = list(map(to_int,[item.get_text(strip=True)
            for item in soup.find_all('td', class_='calcCell')]))
print(len(cells))
print(cells[3])
На указанном аккаунте есть активная подписка. Если я печатаю содержимое response - элементы ‘hidden’ отсутствуют, подписка есть и все элементы отображаются. После передачи в суп почему-то все пропадает. Печатаю содержимое супа - присутствует скрытые ('hidden') элементы. Ну и соответственно например скрытый без подписки элемент (для примера 3й) не печатается.

Отредактировано BieKuf (Май 4, 2022 14:01:12)

Офлайн

#2 Май 3, 2022 23:21:44

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Python. Почему пропадает авторизация после передачи сайта в Beautifulsoup

какие данные нужно получить? даже для примера

Офлайн

#3 Май 3, 2022 23:33:21

BieKuf
Зарегистрирован: 2022-05-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Почему пропадает авторизация после передачи сайта в Beautifulsoup

xam1816
какие данные нужно получить? даже для примера
Все элементы таблицы ('td', class_='calcCell'). Лист (список) в 1078 символов). Не понимаю почему в суп передается не авторизированная страница
Пример

Отредактировано BieKuf (Май 3, 2022 23:35:10)

Офлайн

#4 Май 4, 2022 00:04:38

xam1816
Зарегистрирован: 2020-05-11
Сообщения: 1352
Репутация: +  118  -
Профиль   Отправить e-mail  

Python. Почему пропадает авторизация после передачи сайта в Beautifulsoup

взгляните войдет в кабинет?

  
import requests
from bs4 import BeautifulSoup as Soup
sess = requests.Session()
data = {'AUTH_FORM': 'Y',
'TYPE': 'AUTH',
'USER_LOGIN': 'Samatas',
'USER_PASSWORD': 'testtest123',
'Login': "%C2%F5%EE%E4"}
sess.post('https://www.audit-it.ru/my/login.php',data=data)
print(sess.cookies)
resp = sess.get('https://www.audit-it.ru/buh_otchet/7736050003_pao-gazprom')
html = resp.text
soup = Soup(html, 'html.parser')
print(soup)

вот с вашим кодом

 import re
import requests
from bs4 import BeautifulSoup as Soup
sess = requests.Session()
data = {'AUTH_FORM': 'Y',
'TYPE': 'AUTH',
'USER_LOGIN': 'Samatas',
'USER_PASSWORD': 'testtest123',
'Login': "%C2%F5%EE%E4"}
sess.post('https://www.audit-it.ru/my/login.php',data=data)
resp = sess.get('https://www.audit-it.ru/buh_otchet/7736050003_pao-gazprom')
html = resp.text
soup = Soup(html, 'html.parser')
def to_int(item: str):
    return int(val) if (
        val := re.sub(r'[^\d-]|-(?!\d)|(?<!^)-', '',
            re.sub(r'\((.+)\)', r'-\1', item))) else None
cells = list(map(to_int,[item.get_text(strip=True)
            for item in soup.find_all('td', class_='calcCell')]))
print(len(cells))
print(cells[3])

вывод
219
1140

Отредактировано xam1816 (Май 4, 2022 00:09:43)

Офлайн

#5 Май 4, 2022 00:09:30

BieKuf
Зарегистрирован: 2022-05-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Почему пропадает авторизация после передачи сайта в Beautifulsoup

xam1816
взгляните войдет в кабинет?
Да, входит. Но дальше непонятно как записать все в лист)

Офлайн

#6 Май 4, 2022 00:14:49

BieKuf
Зарегистрирован: 2022-05-03
Сообщения: 4
Репутация: +  0  -
Профиль   Отправить e-mail  

Python. Почему пропадает авторизация после передачи сайта в Beautifulsoup

xam1816
вот с вашим кодом
Выводит так 219 элементов, не подгружает табличку. А если первый код доработать, то элемента ‘17 102 648’ нету в списке. Вообще не понимаю почему не передает авторизированную страницу. В cell должно быть значение ‘17102648’

Отредактировано BieKuf (Май 4, 2022 00:17:48)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version