@Be3yxa

Задержка для парсера сайта?

Добрый день, появилась такая проблема, сайт - https://www.coinglass.com/pro/cme/cftc раньше не подгружал данные(сразу значения были на сайте), а с недавних пор начал и если обновить страницу, можно заметить что первую секунду все значения на странице равны 0. А библиотека BS4 парсит эти нули. Есть ли какая то возможность сделать задержку? Чтобы сначала страница прогрузилась, а потом парсилась.

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

html = requests.get(URL, headers=HEADERS)
            time.sleep(3)
            soup = BeautifulSoup(html.text, 'lxml')
            long_inst = soup.find_all('table', class_='code133741')[+1].find_all('td')[+25].text
            long_inst_changes = soup.find_all('table', class_='code133741')[+1].find_all('td')[+42].text
            short_inst = soup.find_all('table', class_='code133741')[+1].find_all('td')[+26].text
            short_inst_changes = soup.find_all('table', class_='code133741')[+1].find_all('td')[+43].text
            long_funds = soup.find_all('table', class_='code133741')[+1].find_all('td')[+28].text
            long_funds_changes = soup.find_all('table', class_='code133741')[+1].find_all('td')[+45].text
            short_funds = soup.find_all('table', class_='code133741')[+1].find_all('td')[+29].text
            short_funds_changes = soup.find_all('table', class_='code133741')[+1].find_all('td')[+46].text
            date = soup.find('div', class_='bybt-box').find('div').text[6:]
  • Вопрос задан
  • 678 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
Дело не в задержке, данные подгружаются динамически. По поводу парсинга динамических сайтов:
https://qna.habr.com/q/1038438#answer_2008702

Не знаю что вы собираете, но скорее всего все нужные данные тут
https://fapi.coinglass.com/api/cme/cot/report
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
shabelski89
@shabelski89
engineer
есть вероятность что это JS даёт задержку , вот тут предлагаю элегантное решение

from bs4 import BeautifulSoup
from selenium import webdriver

url = "http://legendas.tv/busca/walking%20dead%20s03e02"
browser = webdriver.PhantomJS()
browser.get(url)
html = browser.page_source
soup = BeautifulSoup(html, 'lxml')
a = soup.find('section', 'wrapper')
Ответ написан
Комментировать
Ваш ответ на вопрос

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

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