Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.63/8: Рейтинг темы: голосов - 8, средняя оценка - 4.63
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367

Не могу получить страницу из Ютуба

13.03.2023, 19:52. Показов 1779. Ответов 5

Студворк — интернет-сервис помощи студентам
При запросе я не могу получить нужные мне элементы, может мне заглушку поставили?
Или все отображено в json'е?
Вот что он мне отправляет.
Если что, я пользуюсь pyTelegramBotAPI
Если это в json'е, то вот что мне нужно:
Если ссылка на видео, то мне нужно:
  • Название
  • Просмотры
  • Лайки
  • Автор
  • Ссылка на автора(При нажатии отправляется боту от имени пользователя ссылка на автора)
  • Плейлист(При нажатии отправляется боту от имени пользователя ссылка на плейлист)
  • Видео
  • Ссылка на скачивание видео
  • Максимальное качество
Если это текст, то мне нужно первые 10 видео по поиску в ютубе, с данными:
  • Название
  • Ссылка на видео(При нажатии отправляется боту от имени пользователя ссылка на видео)
  • Автор
  • Ссылка на автора(При нажатии отправляется боту от имени пользователя ссылка на автора)
  • Плейлист(При нажатии отправляется боту от имени пользователя ссылка на плейлист)
Если это ссылка на канал, то мне нужно первые 10 видео, с данными:
  • Название
  • Ссылка на видео(При нажатии отправляется боту от имени пользователя ссылка на видео)
  • Плейлист(При нажатии отправляется боту от имени пользователя ссылка на плейлист)
Если это ссылка на плейлист, то мне нужно первые 10 видео, с данными:
  • Название
  • Ссылка на видео(При нажатии отправляется боту от имени пользователя ссылка на видео)
  • Автор
  • Ссылка на автора(При нажатии отправляется боту от имени пользователя ссылка на автора)
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.03.2023, 19:52
Ответы с готовыми решениями:

Переадресация на страницу ютуба
В гугл хром,при открытие ссылки проходит переадресация на...

Не могу получить страницу
В общем в 2 словах, захожу на сайт, надо выгрузить от туда информацию, которая грузится скриптом, ловлю запрос снифером, в котором есть...

idhttp не могу получить нужную страницу
Привет всем. Пишу программу с использование idhttp. Забираю исходник страницы с сайта: Var st:TstringList; Begin ...

5
13.03.2023, 23:22

Не по теме:

Я бы посоветовал посмотреть в сторону google api. Но учитывая, что по Вашей ссылке лежит html файл и Вы не можете отличить html от json. Может для начала найдете задачки по проще?

0
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
19.03.2023, 14:42  [ТС]
Цитата Сообщение от kazak Посмотреть сообщение
Но учитывая, что по Вашей ссылке лежит html файл и Вы не можете отличить html от json.
Я умею отличать html от json
Ютуб может возращать данные в виде json

Добавлено через 1 минуту
Цитата Сообщение от kazak Посмотреть сообщение
Я бы посоветовал посмотреть в сторону google api.
Без него никак?
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
import telebot
from telebot import types
import random
import time
import json
from typing import List, Tuple, Optional
import re
import dpath.util
import requests
import configparser
from bs4 import BeautifulSoup
from aiogram.utils.markdown import hlink
token='6054842849:AAFCuqcYgyPc1y7PNv60sDQJxlxNei0ZhJw'
bot = telebot.TeleBot(token)
config = configparser.ConfigParser()
config.read('mainconfig.ini')
name, authorname, authorurl = None,None,None
if(config.sections() == []):
    config['MAIN'] = {}
    config['MAIN']['USER_AGENT'] = "requests/2.28.2 (Windows NT 6.1; WOW64; rv:45.0) Python/3.9 pyTelegramBotAPI/4.10.0"
    config['MAIN']['YOUTUBE_SEARCH'] = "https://www.youtube.com/results?search_query="
    config['MAIN']['YOUTUBE_WATCH'] = "https://www.youtube.com/watch?v="
    with open('mainconfig.ini', 'w') as configfile:
        config.write(configfile)
    config.read('mainconfig.ini')
session = requests.Session()
session.headers['User-Agent'] = config['MAIN']['USER_AGENT']
print("start")
@bot.message_handler(commands=['start'])
def start_f(message):
    bot.send_message(message.chat.id, f"Привет! Пришли мне ссылку/текст, а я найду информацию о нем")
@bot.message_handler(content_types=['text'])
def text(message):
    global r, name, authorname, authorurl
    if(str(message.text).startswith('http')):
        formatted = re.sub("https","http",str(message.text))
        formatted = re.sub("www\.", "", str(formatted))
        formatted = re.sub("youtu\.be/", "youtube.com/watch?v=", str(formatted))
        yt = re.findall("http://youtube\.com/",str(formatted))
        text = ""
        if(len(yt)>0):
            try:
                r = requests.get(str(formatted))
                soup = BeautifulSoup(r.content, 'html.parser')
                name = soup.find('span', {"class":'watch-title metadata-updateable-title'}).text
                namelink = hlink(name, str(formatted))
                text+=f"Название видео: {namelink}\n"
                author = soup.find('div', {"class":'style-scope ytd-video-owner-renderer','id':'upload-info'})
                authorname = author.find('a', {"class":'yt-simple-endpoint style-scope yt-formatted-string','id':'upload-info'}).text
                authorurl = f"http://youtube.com/{author.find('a', {'class':'yt-simple-endpoint style-scope yt-formatted-string','id':'upload-info'}).get('href')}"
                authorlink = hlink(authorname,authorurl)
                text+=f"Автор: {authorlink}\n"
                bot.send_message(message.chat.id, text)
            except AttributeError:
                print(f"AttrErr from {message.from_user.id} with YT url {str(formatted)}: {name}, {authorname}, {authorurl}")
                open(f"logsites\\{message.from_user.id}.html","w",encoding="utf-8").write(r.text)
bot.infinity_polling()
В мою сторону можно даже не смотреть?
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
19.03.2023, 16:39
Лучший ответ Сообщение было отмечено ARRAYBOW как решение

Решение

Вы сами пробовали разбирать файл который прикрепили? Там 13000 строк из которых HTML около 1000, все остальное - JS-код, здесь requests+beautifulSoup бессильны
Тут либо selenium, либо api, второе предпочтительнее.
Цитата Сообщение от ARRAYBOW Посмотреть сообщение
Ютуб может возращать данные в виде json
Таки да, в ответ на API запросы
1
Чугунные скороходы
 Аватар для ARRAYBOW
17 / 16 / 3
Регистрация: 25.12.2022
Сообщений: 367
22.03.2023, 18:36  [ТС]
А как же этот парсинг
0
 Аватар для kazak
3602 / 2743 / 355
Регистрация: 11.03.2009
Сообщений: 6,304
23.03.2023, 13:28
Цитата Сообщение от ARRAYBOW Посмотреть сообщение
А как же этот парсинг
Вопрос задан 2 года 10 месяцев назад
Один из неприятный моментов в парсинге сайтов, это то, что сайты не остаются неизменными на протяжении десятилетий. В среднем раз в полгода вносятся какие-нибудь изменения, в лучшем случае, просто меняют стили, и соответственно у некоторых элементов меняются классы/ид. В худшем - меняется сама структура сайта, совсем плохо увеличивается доля JS-кода, либо сайт полностью переходит на JS-фреймворк.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
23.03.2023, 13:28
Помогаю со студенческими работами здесь

Google Chrome, не могу изменить стартовую страницу и страницу поиска
Здравствуйте, в хроме, яндексе и фаерфокс установилась одинаковая стартовая страница и система поиска. Никак не могу изменить их. Спасибо.

Не могу запустить страницу
Привет всем. Проблема такая: начал изучать РНР, установил Денвер. Соответственно через него создался новый виртуальный диск(на этом...

Не могу спарсить страницу
Всем здравствуйте. Подскажите, как спарсить страничку...

Не могу загрузить страницу
Здравствуйте, не могу загрузить данные из сервера http://193.106.4.9:7681/4rtw65efr/list , curl или file_get_contents возвращает FALSE. Как...

Не могу загрузить страницу
Изучаю ASP.NET. Вроде, все поставил, как в книге говорится. Создал виртуальную директорию. Туда поместил файл first.aspx. При попытке зайти...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru