Что нужно сделать, чтобы сайт загрузил javascript?

Пытаюсь достать книгу, так как в браузере читать совершенно неудобно. Написал скрипт, но он не загружает страницу полностью, до нужного мне тега, чтобы получить ссылку. С помощью selenium эмулирую загрузку, открывается браузер, визуально страница полностью прогружается, но нужный div все равно не ищется. Пишет, что не функционирует без javascript. Но ведь сайт прогружается, значит скрипты работают. Не понимаю в чем проблема.

from bs4 import BeautifulSoup
import requests
from fake_useragent import UserAgent
from selenium import webdriver
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
import time


ua = UserAgent()
userAgent = ua.random

browser = webdriver.Chrome(service=Service(ChromeDriverManager().install()))
options = webdriver.ChromeOptions()

options.add_argument('--headless')
options.add_argument("--incognito")
options.add_argument("--nogpu")
options.add_argument("--disable-gpu")
options.add_argument("--window-size=1280,1280")
options.add_argument("--no-sandbox")
options.add_argument("--enable-javascript")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')


driver = webdriver.Chrome(options=options)
driver.execute_script("Object.defineProperty(navigator, 'webdriver', {get: () => undefined})")
driver.execute_cdp_cmd('Network.setUserAgentOverride', {"userAgent": userAgent})


def get_data(url):
    response = requests.get(
        url,
        headers={'user-agent': f'{userAgent}'}
    )
    soup = BeautifulSoup(response.content, "lxml")
    links = soup.find_all('document-view-img__container')
    print(links)


for i in range(537):
    i += 1
    url = f'https://viewer.rusneb.ru/ru/000199_000009_02000012752?page={i}&rotate=0&theme=white'
    get_data(url)
    break


try:
    browser.get(url=url)
    time.sleep(10)
except Exception as ex:
    print(ex)
finally:
    browser.close()
    browser.quit()

Вручную все картинки уже давно нашел, мог бы скачать руками, но интересно сделать это автоматически средствами python


Ответы (1 шт):

Автор решения: Сергей Шашко

Надеюсь разберетесь что чему

import requests

page = 0
while True:
    page +=1
    res = requests.get(f'https://viewer.rusneb.ru/api/v1/document/000199_000009_02000012752/page/{page}')
    if not (res.status_code == 200):
        break
    print(f'{page=}')

print('End')

Получить ссылку на скачивания pdf

import requests
from bs4 import BeautifulSoup

res = requests.get('https://rusneb.ru/catalog/000207_000017_RU_RGDB_BIBL_0000352301/')
soup = BeautifulSoup(res.content, "lxml")
ff = soup.find("a", class_="button button--full button--empty button--h52").get('href')
print(f'https://rusneb.ru{ff}')
→ Ссылка