Не могу понять, как получить BS4 для получения количества просмотров YouTube на странице / видео - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь перейти на страницу, используя BS4, давайте использовать / историю для примера. Я хочу собрать количество просмотров для всех видео, которые в настоящее время находятся на канале / history. Чтобы получить список всех видео, перейдите по ссылке https://www.youtube.com/history/videos

Затем я использую inspect element в chrome, чтобы найти теги. Который дает мне заключение, что я должен попробовать "span" с class = "style-scope ytd-grid-video-renderer"

По какой-то причине это не работает, и я не могу понять, насколько я понимаю.

import re
import requests
import urllib.request
from bs4 import BeautifulSoup
import csv
import time


theurl = "https://www.youtube.com/history/videos"
thepage = urllib.request.urlopen(theurl)
soup = BeautifulSoup(thepage,"html.parser")
Views = soup.findAll('span',attrs={'class':'class="style-scope ytd-grid-video-renderer"'})
print(Views)

Я бы хотел распечатать следующий вывод

3.5K 1.2K 2.2K 5.5k

Затем я могу самостоятельно узнать, что для каждого случая K я умножаю на 100 и т. Д. M и B.

Однако мой шаг на пути к тому моменту, когда он распечатывает вид, - это мой 1012 *.

1 Ответ

0 голосов
/ 08 мая 2019

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

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