Как извлечь всю видео ссылку на канал YouTube через python? - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь получить некоторые подробности с каналов YouTube, но это не дает мне желаемого результата.

Я пробовал приведенный ниже код для получения ссылок на видео YouTube:

import requests
import urllib.request as ur
import pandas as pd

username = "Google"
path = "https://www.youtube.com/user/Google/videos"
alldata = str(requests.get(path).content).split(' ')
item = 'href="/watch?'
vids = [line.replace('href="', 'https://www.youtube.com') for line in alldata if item in line] # list of all videos listed twice
print(pd.DataFrame(vids))

Токовый выход: Этот код дает мне прибл. 30-40 ссылок на видео в качестве вывода, но на данной странице доступно более 1000+ видео.

Ожидаемый результат: Я хочу извлечь все (1000+) ссылки на видео, доступные на этой странице .

Что мне нужно изменить на странице выше, чтобы получить ожидаемый результат?

Спасибо за ваше время.

1 Ответ

0 голосов
/ 06 февраля 2020

Это происходит потому, что при первоначальной загрузке страницы при прокрутке вниз показывается только 40 видео, вызывается AJAX (через javascript) и на страницу отправляется больше данных.

Это сделано для увеличения времени загрузки страницы. Если вы отправите все 1000+ видеоданных при первоначальной загрузке, страница будет показывать что-либо в течение недели.

Когда вы прокручиваете страницу вниз, вы можете видеть, что круг загрузки появляется внизу, когда появляется больше данных.

Вы хотите использовать что-то вроде селена, чтобы повторить прокрутку вниз страницы и затем захватить данные, как только они все загрузятся.

Удачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...