Как правильно парсить страницу на python?

275
01 июня 2022, 20:30

Есть вот такая страница:

function getCookie(name) {
      let matches = document.cookie.match(new RegExp(
          "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)"
      ));
      return matches ? decodeURIComponent(matches[1]) : undefined;
  };
var theme = getCookie("theme");
document.getElementById("cookie").innerHTML = theme;
<!DOCTYPE html>
<html>
<body>
    <p id="cookie"></p>
    <script src="/assets/js/cookies.js"></script>
</body>
</html>

Это просто страница для обучения парсингу данных с html. Всё парсится просто замечательно, но есть одно НО! Тут должны быть в value cookie, которые передаются странице из js, но я их не наблюдаю.

Как мне получить страницу с уже введёнными cookie?

Парсинг страницы провожу через requests вот таким образом: res = requests.get("http://localhost/cookie.py")

При парсинге я получаю только вот это:

<!DOCTYPE html>
<html>
<body>
    <p id="cookie"></p>
    <script src="/assets/js/cookies.js"></script>
</body>
</html>

Хотя в <p id="cookie"></p> должны быть данные. Что с этим делать?

PS Понял что requests не подходит для этого, т.к. не ждёт конца загрузки страницы. Как дождаться конца загрузки страницы и спарсить уже с данными?

Answer 1

У requests есть класс Session, который по идее отвечает за хранение cookie и авторизационной информации.

session = requests.Session()
session.get(..)
session.post(...)
READ ALSO
SQL - один IF (условие), два значения

SQL - один IF (условие), два значения

Как выполняется одно условие понятноМожно ли в одном условии, менять 2 значения? Или только 2 if использовать? Условие одно - значения нужно...

189
геометрическая вероятность, интеграл

геометрическая вероятность, интеграл

Мне необходимо вычислить интегралОбласть G, ограниченная прямыми x=2, y=x и гиперболой xy=1, вписанная в прямоугольник D

228
Не работает ввод массива структур

Не работает ввод массива структур

Всем приветТакая проблема: нет возможности заполнить массив структур - программа тут же заканчивается, предлагая закрыть окно

237
Как получить uncompressed byte array (DirectShow)?

Как получить uncompressed byte array (DirectShow)?

Я использую DirectShow https://docsmicrosoft

330