Парсинг сайта на Flash?

Добрый день!

Я новичок в программировании. Основная цель - парсинг сайтов.

С простыми сайтами разобрался, проблем не возникает.

Но тут при попытке отпарсить сайт скидок возникает проблема: программа не видит подходящих элементов.
Ссылка: https://edadeal.ru/sankt-peterburg/offers?segment=...

Насколько смог понять, проблема в том, что сайт использует Flash и стандартный инструмент requests не видит код сайта.

Подскажите, что можно в этой ситуации сделать?

Мой текущий код - заканчивается на проверке количества подходящих элементов

import requests
from bs4 import BeautifulSoup
import datetime

run = input("Скачать скидки на пиво? y/n \n")

if run == 'y':
url = 'https://edadeal.ru/sankt-peterburg/offers?segment=...'
r = requests.get(url.format())
r_html = r.text

soup = BeautifulSoup(r_html,"html.parser")

deal = soup.findAll("div",{"class":"b-offer__product-info"})
print(len(deal))
  • Вопрос задан
  • 191 просмотр
Пригласить эксперта
Ответы на вопрос 1
nokimaro
@nokimaro
Там javascript делает запросы к API (ajax/XHR) и результаты встраивает на страницу
Посмотреть эти запросы можно в dev-tools во вкладке network

пример url'а
https://api.edadeal.ru/web/search/offers?count=30&...

в случае в edadeal там ещё прикручены Protobuffers - https://ru.wikipedia.org/wiki/Protocol_Buffers
с Protobuffers придётся разобраться если захочется полностью раскодировать ответы api, если цель выдернуть ссылки то они видны в ответе api и без раскодирования.

5e78d08c496de649495874.png
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы