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

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

25.04.2020, 00:22. Показов 20320. Ответов 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
5906 / 3358 / 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
5906 / 3358 / 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
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru