我尝试通过以下 URL 使用 get 请求提取数据,但出现以下错误。
我不明白该网址有什么问题。
如有任何帮助,我们将不胜感激
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('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="7312171e1a1d331211105d101c1e" rel="noreferrer noopener nofollow">[email protected]</a>', 'Summer2020'))
print(response.content)
错误
引发 MissingSchema(错误) 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 %0A搜索%26从%3DOct%201%202020%26到%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('<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="caabaea7a3a48aaba8a9e4a9a5a7" rel="noreferrer noopener nofollow">[email protected]</a>', 'Summer2020')
response = requests.get(url,params=payload, auth =authParams )
print(response.content)
关于python - 请求异常.MissingSchema : Invalid URL Python API Get request,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64905098/