1
URL을 받았습니다 : https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp ® -75-desktop-virtualization-solutions; 그것은 BeautifulSoup 출신입니다.urllib2.urlopen에 대한 url을 어떻게 처리합니까?
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()
, 그러나 그것은 원래 URL에서 것과는 다르다.
originalUrl = 'https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp®-75-desktop-virtualization-solutions'
originalSource = urllib2.urlopen(originalUrl).read()
originalSource == source
결과는 거짓입니다. 이 URL을 고칠 생각이 있습니까? u '\ xae'을 원본 ®
으로 변환하는 방법은 무엇입니까?
전체 URL을하지 다루는 다른 쉬운 방법이 있나요 그냥 URL.path? – user4181172
무슨 뜻인지 확실하지 않아요. 'urllib.quote'를 전체 URL에 적용하려고하면 콜론과 같이 잘못된 것들이 인코딩됩니다. –
@Martijin, 감사합니다. 당신은 이미 내 질문에 대답했습니다. urllib.quote를 사용하여 URL.path를 인코딩하십시오. – user4181172