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()


не работает (у меня). Направьте меня в нужную сторону, плиз ))
  • Вопрос задан
  • 818 просмотров
Решения вопроса 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 или бы нашел другой сайт, который выдает те же самые данные.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы