You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python实现YouTube搜索时requests.get报MissingSchema错误如何解决?

错误根因

触发该报错的核心原因是混用了urllib和requests两个HTTP请求库,逻辑冲突:

  • urllib.request.urlopen()执行后返回的是HTTPResponse响应对象,不是字符串格式的URL
  • requests.get()要求传入的第一个参数必须是带http/https协议头的字符串URL,你直接把响应对象作为参数传入,才触发了MissingSchema报错
    额外注意:不要用str作为自定义变量名,会覆盖Python内置的字符串类型关键字,后续可能引发不可预知的错误。

修正方案

提供两种可选的修复方案,选择其中一种即可:

方案1:统一使用requests库(代码更简洁,推荐)

import requests
import re
import urllib.parse

def pesquisar(string):
    # 对搜索关键词做标准URL编码,比手动替换空格更严谨,可避免特殊字符引发的报错
    query_str = urllib.parse.quote(string)
    request_url = f"https://www.youtube.com/results?search_query={query_str}"
    search_result = requests.get(request_url).text
    print(search_result)

方案2:统一使用urllib库

import urllib.request
import urllib.parse
import re

def pesquisar(string):
    query_str = urllib.parse.quote(string)
    request_url = f"https://www.youtube.com/results?search_query={query_str}"
    searching = urllib.request.urlopen(request_url)
    # 直接读取urllib返回的响应内容,解码为utf-8格式字符串
    search_result = searching.read().decode('utf-8')
    print(search_result)

内容的提问来源于stack exchange,提问作者Fabricio Lopes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.03 09:06:05