|
|
||||||
Как распарсить динамическую таблицу?02.02.2019, 02:44. Показов 19036. Ответов 23
Здравствуйте. Пытаюсь разобраться в парсинге страниц. Остановился пока на простой BeautifulSoup4 (Python3). Позже думаю на Scrapy перейти.
В общем, хочу написать парсера для поиска букмекерских вилок. В общем, наткнулся на следующую проблему. Нужно получить информацию из таблицы на странице https://<i>https://www.oddspor... i6gO5P</i> Я получаю HTML, но это исходный код страницы (Ctrl+U), данной таблицы там вовсе нет (когда я смотрю через Firebug (Ctrl+Shift+C), то эта таблица есть). Я знаю, что как-то её можно распарсить, именно с этого сайта и пишутся роботы в основном. Подскажите, в какую сторону смотреть хоть, чтобы получить эту таблицу. Может, BS для данной задачи не подходит?.. И да, данные в таблице изменяются, но я думаю это уже потом решится..
0
|
||||||
| 02.02.2019, 02:44 | |
|
Ответы с готовыми решениями:
23
Как сделать динамическую таблицу? Как сделать динамическую таблицу? Как закрасить динамическую таблицу |
|
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
|
|
| 02.02.2019, 06:31 | |
|
BS для данной задачи подходит, а вот requests не подходит, тут надо selenium использовать
1
|
|
|
|
||||
| 02.02.2019, 14:25 [ТС] | ||||
|
https://www.youtube.com/watch?v=BLCmWzFbC0E&t=1s Добавлено через 1 минуту
0
|
||||
|
|
||||||
| 02.02.2019, 14:32 | ||||||
|
это как-бы скелет для универсального парсера
0
|
||||||
|
|
|
| 02.02.2019, 15:37 [ТС] | |
|
Ну вот.
Статус - 200. Есть подозрения, что здесь этот метод не подходит. Тут таблица с JS генерится, насколько я понял.
0
|
|
|
|
|
| 02.02.2019, 16:05 [ТС] | |
|
Взял div по id, беру список 'table-container'. В итоге, их количество равно 0... А должно быть 2.
Мне интересно, это я настолько криворукий, что не могу вытащить оттуда инфу?)
0
|
|
|
|
|
| 02.02.2019, 16:16 [ТС] | |
|
Я когда вытаскиваю HTML, там просто исходный код страницы. Там нет этой таблицы. Может, в этом проблема?
odds.tar.zip
0
|
|
|
|
||||||
| 02.02.2019, 16:23 | ||||||
|
Там нет никаких таблиц c данными.
Кликните здесь для просмотра всего текста
globals.jsonpCallback('/feed/match/1-1-dWi6gO5P-1-2-yj0b4.dat', {"s":1,"d":{"bt":1,"sc":2,"nav":{"1":{"2 ":["31","164","20","468","149","1","411","4 9","45","406","472","46","383","417","37 2","21","393","160","464","57","80","129 ","3","429","14","38","5","9","455","121 ","27","2","26","73","47","454","16","41 4","18","392","128","163","32","381","76 ","15","419","520","43","453","514","416 ","56","139","24","33","147","30","75"," 157"],
.... "3":["4.65",366,1549108402],["4.70",460,1549108219],["4.80",560,1549107863],["4.70",13,1549107800],["4.60",1454,1549107692],["4.50",269,1549107269],["4.45",150,1549106965],["4.50",363,1549106301],["4.45",4865,1549106179],["4.55",11490,1549106116],["4.50",204,1549105694],["4.45",5184,1549105287],["4.50",3713,1549104802],["5.40",308,1548803365]]}}},"time-base":1549110653,"brokenParser":[]},"refresh":20}); и далее из них формируется таблица. P.S. Как с этим работать - вам уже написали: использовать selenium. Хотя, можно попробовать и внутренний API сайта расковырять.
2
|
||||||
|
|
|
| 02.02.2019, 16:27 [ТС] | |
|
Вот и мне кажется, что тут обычным BS+requests не обойтись.
Есть какой-то мануал по решению подобного вопроса с помощью питона?
0
|
|
|
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
|
||||||
| 02.02.2019, 16:42 | ||||||
Сообщение было отмечено m0nte-cr1st0 как решение
Решение
Да вот как-то так
0
|
||||||
|
|
|
| 02.02.2019, 16:55 [ТС] | |
|
Спасибо.
Не могли бы вы скинуть какие-то туториалы по этой теме? И сложно ли вообще написать парсер для всего этого сайта?
0
|
|
|
1293 / 677 / 367
Регистрация: 07.01.2019
Сообщений: 2,302
|
|||
| 02.02.2019, 17:15 | |||
|
0
|
|||
|
|
||
| 02.02.2019, 18:40 | ||
|
Ответ в JSONP, а не JSON, так как возвращается вызов javascript функции указанной в jsonp параметре, поскольку сайт делает кроссдоменные запросы, а JSONP это способ обойти запреты для браузеров не поддерживающих CORS (Cross-Origin Resource Sharing). Но откуда именно берутся данные для той или иной таблицы я не выяснял - там все довольно нетривиально в плане работы внутреннего API.
0
|
||
|
|
||||||
| 02.02.2019, 19:20 [ТС] | ||||||
|
Вот.. Хочу получить список строк. Вылетает ошибка AttributeError: 'list' object has no attribute 'find_elements_by_tag_name'
0
|
||||||
| 02.02.2019, 19:20 | |
|
Помогаю со студенческими работами здесь
20
Как связать динамическую таблицу Excel с PowerPoint Как сделать динамическую таблицу меняющую размеры? Создать динамическую таблицу Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Вывод данных через динамический список в справочнике
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2.
Задача: вывести данные из ТЧ нетипового документа. . .
|
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению.
На форме документа создается. . .
|
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
|
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
|
|
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
|
10 пpимет, которые всегда сбываются
Maks 31.03.2026
1. Чтобы, наконец, пришла маршрутка, надо закурить. Если сигарета последняя, маршрутка придет еще до второй затяжки даже вопреки расписанию.
2. Нaдоели зима и снег? Не надо переезжать. Достаточно. . .
|
Перемещение выделенных строк ТЧ из одного документа в другой
Maks 31.03.2026
Реализация из решения ниже выполнена на примере нетипового документа "ВыдачаОборудованияНаСпецтехнику" с единственной табличной частью "ОборудованиеИКомплектующие" разработанного в конфигурации КА2. . . .
|
Functional First Web Framework Suave
DevAlt 30.03.2026
Sauve. IO
Апнулись до NET10.
Из зависимостей один пакет, работает одинаково хорошо как в режиме проекта
так и в интерактивном режиме. из сложностей - чисто функциональный подход.
Решил. . .
|