С Новым годом! Форум программистов, компьютерный форум, киберфорум
Python: Web
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.77/103: Рейтинг темы: голосов - 103, средняя оценка - 4.77
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13

Парсинг сайта с javascript

25.04.2020, 00:22. Показов 20333. Ответов 20
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Я в этом деле новичок, возникла такая потребность.
С сайта https://1xstavka.ru/results/, нужно вытащить таблицы (раздел "баскетбол") в .csv файл, отдельно по каждой дате или задавать промежутком. Я так понимаю, таблица подгружается после нажатия кнопок на сайте (post/get запросы)
Помогите или подскажите, как в python сформировать такие же запросы, чтобы получить html с развернутыми таблицами для парсинга. Никак не могу разобраться. Спасибо.
Python
1
2
3
4
5
6
7
8
9
from bs4 import BeautifulSoup
import requests
 
url = 'https://1xstavka.ru/results/'
 
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
 
print(soup)
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
25.04.2020, 00:22
Ответы с готовыми решениями:

Парсинг страницы со скриптами javascript
Здравствуйте, столкнулся с такой проблемой! Нужно спарсить сайт, но практически весь контент на нём появляется с помощью javascript,...

Парсинг JavaScript кода (только инициализатор объектов)
Никак не определюсь со способом парсинга исходников JavaScript. Итак, есть кусочки кода, вроде такого: var game = { ...

Парсинг сайта с JavaScript
Есть сайт, на котором контент формируется JavaScript'ом, соответственно, при парсинге через cURL я не вижу данного контента. Вариант:...

20
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
25.04.2020, 10:08
badattitude, во-первых займись поиском тут, помнб помогали тут человеку с подобным, вроде даже тот же сайт, по крайней мере помню что игры какие-то. Нужно использовать не суп, а селениум если там скриптом все подгружается. Если все-же запросом, то повторяем эти запросы и парсим данные.
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
25.04.2020, 13:08  [ТС]
Silenium очень долго, там нужен большой интервал по датам.
Вот именно, в формировании запросов проблема. Как их на requests сформировать или где про это подробно прочитать. Все облазил, везде только поверхностно написано, а именно откуда и как брать параметры запроса. В инструментах разработчика, нашёл нужные get - запросы.
Чтобы сайт выдал нужные таблицы, надо по 3 кнопкам пройтись, получается 3 get запроса?
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
25.04.2020, 13:10
Цитата Сообщение от badattitude Посмотреть сообщение
Все облазил,
не правда, первая же ссылка в гугле - это доки реквестс
2 поиском в гугле можно посмотреть как с вкладкой Нетворкс работать в инструментах разработчика Хром

Цитата Сообщение от badattitude Посмотреть сообщение
надо по 3 кнопкам пройтись, получается 3 get запроса?
подожди, дай хрустальный шар достану))) это зависит от сайта, возможно что и 3, посмотри что происходит при нажатии
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
25.04.2020, 13:19  [ТС]
Чтобы добраться до таблицы, сначала нажимаю кнопку "Баскетбол" (отправляется get запрос), выбор нужной даты (get запрос) и кнопка "развернуть" (get запрос). Только после этого в дереве html можно добраться до таблицы с результатами.
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
25.04.2020, 22:38  [ТС]
Подскажите, как сформировать запросы или каким образом можно получить html код(кроме selenium'а), чтобы распарсить страницу. Никак не могу разобраться.
0
Автоматизируй это!
Эксперт Python
 Аватар для Welemir1
7390 / 4817 / 1246
Регистрация: 30.03.2015
Сообщений: 13,664
Записей в блоге: 29
26.04.2020, 11:19
badattitude, скопировать те запросы что делаются в хроме
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
26.04.2020, 17:31
Сайт прекрасно отдает json по всем видам спорта.

Добавлено через 43 секунды
Цитата Сообщение от badattitude Посмотреть сообщение
from bs4 import BeautifulSoup
import requests
url = 'https://1xstavka.ru/results/'
r = requests.get(url)
soup = BeautifulSoup(r.text, "html.parser")
print(soup)
Никогда так не пишите, если хотите хоть чему-то научиться.
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
27.04.2020, 01:18  [ТС]
У меня в этом и складывается вся проблема, сайт в контенте html/text, а прочитать функцией r.json() ответ, никак не могу.
Для меня это все в новинку, вот и задаю по видимому глупые вопросы.
Объясните пожалуйста, в чтобы получить нужную страницу для Парсинга, мне какой запрос надо передать и как его сформировать(с заголовками и параметрами?).
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
27.04.2020, 23:08  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Сайт прекрасно отдает json по всем видам спорта.



Python
1
2
3
4
5
6
7
url = 'https://1xstavka.ru/results/'
params = {'showAll': 'True', 'date': '2020-04-07'}
headers = {'Content-Type''application/json'} 
response = requests.get(url, params=params, headers=headers)
 
 
print(response.json())
выдает ошибку:
C:\Users\дом>"C:/Program Files/Python38/python.exe" c:/Users/дом/1xstavka.py
Traceback (most recent call last):
File "c:/Users/дом/1xstavka.py", line 13, in <module>
print(response.json())
File "C:\Program Files\Python38\lib\site-packages\requests\models.py", line 898, in json
return complexjson.loads(self.text, **kwargs)
File "C:\Program Files\Python38\lib\json\__init__.py", line 357, in loads
return _default_decoder.decode(s)
File "C:\Program Files\Python38\lib\json\decoder.py", line 337, in decode
obj, end = self.raw_decode(s, idx=_w(s, 0).end())
File "C:\Program Files\Python38\lib\json\decoder.py", line 355, in raw_decode
raise JSONDecodeError("Expecting value", s, err.value) from None
json.decoder.JSONDecodeError: Expecting value: line 1 column 1 (char 0)

подскажите, в чем проблема или что делаю не так
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
27.04.2020, 23:19
может сервер отвечает не json-ом?
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
27.04.2020, 23:25
Цитата Сообщение от Jabbson Посмотреть сообщение
может сервер отвечает не json-ом?
Он отвечает json-ом только по соответствующему запросу.
Логично предположить, что такой сайт просто не может работать иначе, оперируя в realtime таким объемом данных.

Но по какому именно запросу - пускай ТС выясняет сам. На форуме это уже приводилось.
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
28.04.2020, 00:42  [ТС]
Цитата Сообщение от Garry Galler Посмотреть сообщение
Он отвечает json-ом только по соответствующему запросу.
Он отвечает json' ом при get запросе с параметрами? Или надо запросу передать заголовки? на форуме не могу найти похожего
0
Эксперт по компьютерным сетям
 Аватар для Jabbson
5907 / 3359 / 1036
Регистрация: 03.11.2009
Сообщений: 10,008
28.04.2020, 00:57
Цитата Сообщение от badattitude Посмотреть сообщение
Он отвечает json' ом при get запросе с параметрами? Или надо запросу передать заголовки? на форуме не могу найти похожего

Не по теме:

https://www.8-ball-magic.com/answer.php?id=340976&lang=ru

0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
28.04.2020, 16:05  [ТС]
Garry Galler,
Цитата Сообщение от Garry Galler Посмотреть сообщение
Он отвечает json-ом только по соответствующему запросу.
Подскажите как запрос сформировать, не могу никак разобраться.
Python
1
2
3
4
url = 'https://1xstavka.ru/results'
params = {'showAll': 'true', 'date': '2020-04-07'}
 
r = requests.get(url, params=params)
ответ всегда в виде html/text.
И заголовки все тоже пробовал передавать, исход тот же

Добавлено через 30 минут
Garry Galler,
Цитата Сообщение от Garry Galler Посмотреть сообщение
Он отвечает json-ом только по соответствующему запросу.
Подскажите как запрос сформировать, не могу никак разобраться.
Python
1
2
3
4
url = 'https://1xstavka.ru/results'
params = {'showAll': 'true', 'date': '2020-04-07'}
 
r = requests.get(url, params=params)
ответ всегда в виде html/text.
И заголовки все тоже пробовал передавать, исход тот же
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.04.2020, 16:08
Поиск по форуму в разделе Python: 1xstavka.ru
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
28.04.2020, 16:24  [ТС]
Надеюсь последний вопрос.
Каким образом формировать такие запросы и передавать им параметры?
Большое спасибо за уже оказанную помощь.
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.04.2020, 17:25
Вы что так и не нашли готовый пример?
Проблема с массивами JSON в python)
0
0 / 0 / 0
Регистрация: 10.04.2018
Сообщений: 13
28.04.2020, 17:46  [ТС]
Нашел, спасибо большое.
Но, все равно не могу разобраться с параметрами, как их задать, чтобы выдавал json с нужной датой
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
url = 'https://1xstavka.ru'
rs = requests.get(
    url + '/LineFeed/Get1x2_VZip',
    params={
        'sports': '1',
        'count': 10,
        'tf': 2200000,
        'tz': 7,
        'mode': 4,
        'subGames': 175162887,
        'country': 1,
        'partner': 51,
        'getEmpty': 'true'
    }
 
)
0
Эксперт Python
5438 / 3859 / 1215
Регистрация: 28.10.2013
Сообщений: 9,552
Записей в блоге: 1
28.04.2020, 17:53
Цитата Сообщение от badattitude Посмотреть сообщение
се равно не могу разобраться с параметрами
А как вы думаете кто еще это должен делать? У меня нет задания парсить ставки. Оно есть у вас.
Разобраться в этих параметрах нельзя никаким иным способом, кроме самостоятельного тестирования каждого параметра.
Потому что никакой открытой документации по ним не существует.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
28.04.2020, 17:53
Помогаю со студенческими работами здесь

Парсинг сайта с JavaScript
Мне нужно пропарсить сайт, но информация поялвяеться на сайте только после выполнения JS. Как получить HTML сайта после выполнения скриптов?

Парсинг сайта с javascript
Всем доброго вечера. Есть сайт, который ведет поиск по запросу, если конкретно то по телефонному номеру. При просмотре кода не нашел строку...

Парсинг данных с сайта с javascript
Есть сайт с некими данными (раз в день обновляемыми, потому и нужна программа), данные выдаются примерно следующим образом: 1....

Парсинг выполняемого JavaScript, JSON с сайта в программу С++
Добрый день. Пишу для себя мини-виджет на С++ который будет отображать некую информацию с сайта. Созрел вопрос и вопрос стоит в...

Парсинг html сайта у которого frontend на javascript
Здравствуйте. Пытаюсь запарсить вот этот сайт: http://allsocial.ru Для начала пытаюсь получить html код, но он приходит не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru