我正在尝试请求以下 URL:
https://www.sainsburys.co.uk/shop/gb/groceries/shiraz/barossa-valley-estate-grenache-shiraz-mourv%C3%A8dre-75cl
用 urllib 解码并打印它,结果显示:
In [36]: print urllib.unquote(url)
https://www.sainsburys.co.uk/shop/gb/groceries/shiraz/barossa-valley-estate-grenache-shiraz-mourvèdre-75cl
即带重音的“e”。
但似乎无论我对 import requests; requests.get(...)
提出什么要求,然后我得到 404。
给 get 方法的正确输入是什么?
最佳答案
您应该在将 URL 传递给 urrlib unquote 后使用“latin-1”对其进行解码
>>>
>>> k = "https://www.sainsburys.co.uk/shop/gb/groceries/shiraz/barossa-valley-estate-grenache-shiraz-mourv%C3%A8dre-75cl"
>>> r = requests.get(urllib.unquote(k).decode("latin-1"))
>>> r.status_code
200
>>>
关于python - 如何请求已在 python-requests 中进行 URL 编码的 URL?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42681090/