Malodar
@Malodar
Начинающий питонист

Парсинг сайта. В какую сторону копать?

Приветствую. Изучаю web-scraping совсем недавно и не могу победить одну проблемку: есть сайт www.nowgoal.net . Я хочу получить список всех матчей с главной страницы. Каждый матч имеет свой id (на скрине видно "tr1_id")23d6f8f9d29e4ae2b7cdf374ca81793b.png,
но я никак не могу извлечь его. Использую BeautifulSoup. Понимаю, что нужно как-то работать с таблицей "table_live", но как мне до нее "добраться"? Простой метод, типа:
from bs4 import BeautifulSoup
from urllib.request import urlopen
import re

def main():
    html = urlopen("http://www.nowgoal.net/")
    soup = BeautifulSoup(html, 'lxml')
    res = soup.find('table', id=re.compile("table_live"))

    print(res)

if __name__ == "__main__":
    main()


не работает (у меня). Направьте меня в нужную сторону, плиз ))
  • Вопрос задан
  • 659 просмотров
Решения вопроса 1
@nirvimel
Это 100% AJAX контент. Не пытайтесь парсить HTML - это пустой шаблон.
Сам контент несут запросы:
www.nowgoal.net/data/panlu_en.js?1487540944000
www.nowgoal.net/data/bf_en2.js?1487540944000 - видимо, главный список матчей.
Формат: Javascript/JSONP (то есть НЕ валидный JSON).
А этот GET-параметр - метка времени в формате Javascript (миллисекунды с момента начала Эпохи).

P.S.: Я обычно с уважением отношусь к веб-разработчикам (хорошо_ли/плохо_ли вышло, но люди делали, старались), но, глядя на этот кусок... сайта, просто не могу удержаться: ТАКОГО ГОВНОКОДА Я НЕ ВИДЕЛ ДАВНО!
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@deliro
Агрессивное программирование
Направьте меня в нужную сторону, плиз ))

Удали прямо сейчас beautifulsoup и возьми scrapy.
Ответ написан
LazyTalent
@LazyTalent
Data Engineer, Freelancer
Полностью согласен с nirvimel - дикий говнокод. На твоем месте я бы не стал заморачиваться и вникать во все эти запросы - уйдет очень много времени, а тупо бы взял selenium или бы нашел другой сайт, который выдает те же самые данные.
Ответ написан
Ваш ответ на вопрос

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

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