如何检查是否存在使用python的youtube视频?



我有一个简单的函数,检查是否存在一个网站:

def try_site(url):
request = requests.get(url)
return request.status_code == 200

问题是,对于youtube网址,没有视频,仍然存在一个页面-它不返回404,或类似的东西。所以我的代码显然认为这个页面存在。我该如何检查视频是否存在?

import requests
pattern = '"playabilityStatus":{"status":"ERROR","reason":"Video unavailable"'

def try_site(url):
request = requests.get(url)
return False if pattern in request.text else True

print(try_site("https://youtu.be/dQw4w9WgXcQ"))
print(try_site("https://youtu.be/dQw4w9WgXcR"))

获取网页,检查是否有"视频不可用"之类的文字。或类似的页面

你可以做的最简单的(至少对youtube有效):

编辑:这将更多地检查特定的url是否可以直接成功访问

def try_site(url):
request = requests.get(url, allow_redirects=False)
return request.status_code == 200

禁止重定向和检查状态码200,有一个小问题,在状态码302例如(这是在youtube的无效url的情况下返回)意味着重定向到一些其他的url,在标题中提到,简而言之,这意味着你正在搜索的特定url不能直接访问,那里没有内容,但这并不意味着具体的内容不存在,它可能已经移动到服务器上的其他地方(可能在标题中提到)(在YouTube的情况下可能没有)

最新更新