最近在做用油管API爬搜索视频数据的课设。已经在官网上尝试过运行代码<search.list()官方使用示例>以获得搜索结果的格式,也学习了基本操作方法,结果自己试着在pycharm上用后一上来就踩到了大坑。
一直提示TimeoutError: [WinError 10060]由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。
最开始以为是网络问题,毕竟油管需要科学上网,于是调整成了全局模式,但是还是没有解决。并且API Key和OAuth两种认证方法都出现这样的报错。
然后我去问了恰特GPT:
你可以使用 requests库发送一个GET请求来测试是否可以连接到Google API。下面是一个简单的示例代码:请将 YOUR_API_KEY 替换为您的Google API密钥。如果您能够成功连接到Google API,则会输出“Connection to Google API is successful.”,否则会输出连接失败的错误消息。
import requests
url = 'https://www.googleapis.com/youtube/v3/search?part=snippet&q=python&key=YOUR_API_KEY'
try:
response = requests.get(url)
response.raise_for_status()
print('Connection to Google API is successful.')
except requests.exceptions.RequestException as e:
print('Connection to Google API failed:', e)
尝试后发现能正常连接到Google API,并且我的“API和服务-流量”上也有零零星星的记录,那应该就不是连接的问题。
然后我在想是不是和开了代理有关,就把问题问得更具体了一些:
好像没有在Python代码中配置代理。然后我试着加上了这两行:
os.environ["http_proxy"] = "http://127.0.0.1:端口号"
os.environ["https_proxy"] = "http://127.0.0.1:端口号"
然后就能成功接入了。