我正在尝试请求以下网址:

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方法正确的输入是什么?

最佳答案

您应该在将网址传递给urrlib取消引用后,使用“ 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请求中进行了URL编码的URL?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42681090/

10-08 22:31