Python在web抓取中遇到破折号问题

Python在web抓取中遇到破折号问题,python,Python,我有一个简单的脚本,它可以从谷歌上搜索一个链接,然后再搜索那个链接。但是,有些链接中包含破折号,出于某种原因,它在我的脚本(url)中显示为这样的%25E2%2580%2593。所以现在看起来是这样的:http://myaddress.com/search?q=The_%25E2%2580%2593_World当我希望它看起来像这样时http://myaddress.com/search?q=The_–世界。我该怎么做呢?我应该使用UTF-8编码/解码吗 编辑: 我尝试了双重取消引用(参考链接)

我有一个简单的脚本,它可以从谷歌上搜索一个链接,然后再搜索那个链接。但是,有些链接中包含破折号,出于某种原因,它在我的脚本(url)中显示为这样的
%25E2%2580%2593
。所以现在看起来是这样的:
http://myaddress.com/search?q=The_%25E2%2580%2593_World
当我希望它看起来像这样时
http://myaddress.com/search?q=The_–世界
。我该怎么做呢?我应该使用UTF-8编码/解码吗

编辑:

我尝试了双重取消引用(参考链接),但没有成功。相反,我得到的结果如下:
http://myaddress.com/search?q=The_–eu World

URL似乎是URL编码的

要解码为原始形式,请使用urllib库的parse.unquote函数执行双URL解码:

import urllib.parse

url = 'http://myaddress.com/search?q=The_%25E2%2580%2593_World'
urllib.parse.unquote(urllib.parse.unquote(url))
解码到所需的http://myaddress.com/search?q=The_–World的URL

编辑

正如您所解释的,您使用的是Python 2.7,等效的解码函数是
unquote(url)
(请参阅文档)

输出:


http://myaddress.com/search?q=The_–-U World

那篇文章的可能副本没有帮助;我的破折号仍然是“转义”的。我忘了提到我使用的是Python 2.7;我知道
urllib.parse
是Python 3库。我试着改用
urllib.url2pathname
,这确实在第一步显示了有希望的迹象ut反而给了我这个
P:\\myaddress.com\search?q=The€“\u World
(当我对它进行双重解码时)。我想这与不使用UTF-8解码有关?
import urllib

url = 'http://myaddress.com/search?q=The_%25E2%2580%2593_World'
print(urllib.unquote(urllib.unquote(url))).decode('utf-8')