python - requests.exceptions.MissingSchema:无效的 URL Python API 获取请求
问题描述
我正在尝试通过以下 URL 使用 get 请求提取数据,但出现以下错误。
我不明白 URL 有什么问题。
任何帮助,将不胜感激
import requests
from requests.auth import HTTPBasicAuth
import json
import urllib.parse
url = """https://msi.abc.com/admin/ui/feedbackCSV/reports
/5d14de32309baf0001501fb7 ?reports[]=pageviews&reports[]=
searches&from=Oct 1 2020&to=Oct 2 2020"""
encode_url = urllib.parse.quote(url,encoding='utf-8')
response = requests.get(encode_url,auth = HTTPBasicAuth('admin@abc.com', 'Summer2020'))
print(response.content)
错误
引发 MissingSchema(error) requests.exceptions.MissingSchema: 无效的 URL 'https%3A%2F%2Fmsi.abc.com%2Fadmin%2Fui%2FfeedbackCSV%2Freports%0D%0A%2F5d14de32309baf0001501fb7%20%3Freports%5B%5D%3Dpageviews% 26reports%5B%5D%3D%0D%0Asearches%26from%3DOct%201%202020%26to%3DOct%202%202020':未提供架构。也许你的意思是 http:https%3A%2F%2Fmsi.abc.com%2Fadmin%2Fui%2FfeedbackCSV%2Freports%0D%0A%2F5d14de32309baf0001501fb7%20%3Freports%5B%5D%3Dpageviews%26reports%5B%5D%3D%0D %0Asearches%26from%3DOct%201%202020%26to%3DOct%202%202020?
解决方案
这可能是因为您将整个 URL 传递给了urllib.parse.quote
函数。尝试仅将参数传递给urllib.parse.quote
或使用requests
参数,如下例所示:
import requests
from requests.auth import HTTPBasicAuth
import json
import urllib.parse
url = "https://msi.abc.com/admin/ui/feedbackCSV/reports/5d14de32309baf0001501fb7"
payload = {'reports[]':'pageviews', 'reports[]':'searches','from':'Oct 1 2020', 'to':'Oct 2 2020' }
authParams = HTTPBasicAuth('admin@abc.com', 'Summer2020')
response = requests.get(url,params=payload, auth =authParams )
print(response.content)
推荐阅读
- html - 无法在javascript中从画布下载PNG
- angular - Angular 6:反应式表单的 updateOn:“提交”在提交后未更新值
- mongodb - 在 robomongo 中使用密钥文件
- python - 将 VueJS 与 Django 一起使用时的 build.js 错误
- javascript - 忽略回调函数中传递的参数
- java - Android WebView 中的地理位置权限
- excel - 如何通过 Excel VBA 宏连接到 Sharepoint 中的 MsAccess 2016 .accdb 文件
- javascript - jquery Autocomplete 在 Bootstrap 模式下不起作用
- gradle - 多项目 Gradle 配置
- vba - 参考拆分表格?审计表没有选择 VBA