请求总是拉404 (python)



所以,我在尝试python,我遇到了一个奇怪的问题。我试图看看是否一个YT视频id是有效的,这部分;https://www.youtube.com/watch?v=**QB7ACr7pUuE**,它总是打印404,即使有一个有效的url。

代码:

import requests
def check_video_url(video_id):
checker_url = "https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="
video_url = checker_url + video_id
request = requests.get(video_url)
return request.status_code == 200

testId = "QB7ACr7pUuE"
check_video_url(video_id=testId)
print(str(status))

我没有得到任何错误。什么好主意吗?

看看你的代码,你没有检查从check_video_url返回的值:

import requests

def check_video_url(video_id):
checker_url = (
"https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="
)
video_url = checker_url + video_id
request = requests.get(video_url)
return request.status_code == 200

testId = "QB7ACr7pUuE"
print(check_video_url(video_id=testId))  # <-- Here I print the returned value

打印:

True

testId = "QB7ACr7pUuExxx"   # <--- non-existent video ID
print(check_video_url(video_id=testId))

打印:

False

EDIT:将返回值放入变量:

testId = "QB7ACr7pUuExxx"
status = check_video_url(video_id=testId)
if status:
print("Valid ID")
else:
print("Invalid ID")

添加@Andrej的答案。我建议你使用request.ok并回复你的信息

ok -如果status_code小于400返回True,否则返回False

import requests
def check_video_url(video_id):
checker_url = "https://www.youtube.com/oembed?url=http://www.youtube.com/watch?v="
video_url = checker_url + video_id
request = requests.get(video_url)
return request.ok
testId = "QB7ACr7pUuE"
status = check_video_url(video_id=testId)
if status:  
print("Valid")
else:
print("Not Valid")

最新更新