【发布时间】:2020-11-03 10:01:18
【问题描述】:
我正在尝试使用 pytube 传递来自一个 YouTube 频道的 URL 列表,以便提取 YouTube 元数据的某些位进行分析。这是我正在使用的代码:
import pandas as pd
from pytube import YouTube
url_list = pd.read_csv("data.csv").values
'data.csv' 只是一个单独的列,其中只包含大约 2000 个 YouTube 格式的 URL。据我所知,没有一个视频是私有的。
data = pd.DataFrame(columns = ['title', 'views', 'description', 'length', 'rating'])
lists = []
for url in url_list:
try:
urls = str(url)
yt = YouTube(urls)
lists.append([yt.title, yt.views, yt.description, yt.length, yt.rating])
except Exception as e:
lists.append(['NA', 'NA' , 'NA', 'NA', 'NA'])
print(e)
这里的问题是,YouTube 是否会返回我需要的值是一个问题!有效的 URL 会很好地附加到列表中,但如果不是:
RegexMatchError: get_ytplayer_config: could not find match for config_patterns
最终,在第一次发生此错误后,我也会为每个 URL 收到此错误:
HTTP Error 429: Too Many Requests
我尝试过使用 BeautifulSoup,但不断收到一些令人沮丧的“资产”错误以及以下问题:
MissingSchema: Invalid URL 'u': No schema supplied. Perhaps you meant http://u?
如果有人能提出任何解决此问题或替代方案的方法,那将是绝妙的,因为我一直在摸索着寻找解决方案。
【问题讨论】:
-
报告了一个错误。请参阅 this previous post 并进行错误处理。
标签: python pandas beautifulsoup youtube pytube