1
我收到一個url:https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp®-75-desktop-virtualization-solutions;它來自BeautifulSoup。如何在url中處理urllib2.urlopen?
url=u'https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp\xae-75-desktop-virtualization-solutions'
我想再次反饋到urllib2.urlopen。
import urllib2
source = urllib2.urlopen(url).read()
的錯誤,我得到:
UnicodeEncodeError: 'gbk' codec can't encode character u'\xae' in position 43: illegal multibyte sequence
因此,我想:
source = urllib2.urlopen(url.encode("utf-8")).read()
它讓網頁的源文件,但它是從原始地址從什麼不同。
originalUrl = 'https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp®-75-desktop-virtualization-solutions'
originalSource = urllib2.urlopen(originalUrl).read()
originalSource == source
結果是錯誤的。有沒有想法解決這個網址?如何將u'\ xae'轉換成原來的®
?
是否有任何其他簡便的方法來處理整個網址不只是URL.path? – user4181172 2014-10-29 01:51:54
不確定你的意思;如果您嘗試將'urllib.quote'應用於整個URL,那麼錯誤的東西將被編碼(如冒號)。 – 2014-10-29 07:55:21
@Martijin,謝謝。你已經回答了我的問題。只需使用urllib.quote來編碼URL.path即可。 – user4181172 2014-11-01 21:44:03