urllib2.urlopen如何处理url中的®?

用户名

我收到了一个网址:https : //www.packtpub.com/virtualization-and-cloud/citrix-xenapp®-75-desktop-virtualization-solutions它来自BeautifulSoup。

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

结果为False。有什么想法可以解决这个网址吗?怎么把u'\ xae'转换成原始图片®

马丁·彼得斯(Martijn Pieters)

URL必须是有效的字节串,并且正确编码了非ASCII码点。您需要编码为UTF-8,然后用url引用URL的路径:

import urllib
import urllib2
import urlparse

originalUrl = u'https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp\xae-75-desktop-virtualization-solutions'
parsed_link = urlparse.urlsplit(originalUrl.encode('utf8'))
parsed_link = parsed_link._replace(path=urllib.quote(parsed_link.path))
encoded_link = parsed_link.geturl()
source = urllib2.urlopen(encoded_link).read()

演示:

>>> import urllib
>>> import urllib2 
>>> import urlparse
>>> originalUrl = u'https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp\xae-75-desktop-virtualization-solutions'
>>> parsed_link = urlparse.urlsplit(originalUrl.encode('utf8'))
>>> parsed_link = parsed_link._replace(path=urllib.quote(parsed_link.path))
>>> encoded_link = parsed_link.geturl()
>>> encoded_link
'https://www.packtpub.com/virtualization-and-cloud/citrix-xenapp%C2%AE-75-desktop-virtualization-solutions'
>>> source = urllib2.urlopen(encoded_link).read()
>>> len(source)
68758

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何使用urllib2获取cookie

来自分类Dev

Python urllib2中的语法问题?

来自分类Dev

urllib,urllib2,urllib.request.open,AttributeError:“模块”对象没有属性“ urlopen”

来自分类Dev

urllib2中未知的URL类型错误

来自分类Dev

urllib2中未知的url类型错误

来自分类Dev

如何处理urllib2套接字超时?

来自分类Dev

python urllib2无法获取特定的URL

来自分类Dev

使用python urllib2返回url文件流

来自分类Dev

urllib2 允许使用代理重定向 url

来自分类Dev

如何通过代理调试urllib2请求

来自分类Dev

Python-如何知道您使用urllib2登录

来自分类Dev

如何使用urllib2在Python中发送标头

来自分类Dev

使用urllib2来获取3.3.2中的Internet资源

来自分类Dev

在urllib2中使用certifi模块?

来自分类Dev

urllib2比python3中的请求慢吗

来自分类Dev

使用urllib2不能同时执行python中的线程

来自分类Dev

urllib2 - 计算 .csv 文件中的行数 - python

来自分类Dev

如何在Python中使用urlopen或urllib2避免基于国家/地区的重定向

来自分类Dev

如何在不使用 urlopen 的情况下发出 urllib2 POST 请求?

来自分类Dev

您如何使用urllib2(和urllib)python将cookie发送到网站?

来自分类Dev

如何使用python 3构建对neutrinoapi的请求?(将urllib2请求转换为urllib)

来自分类Dev

如何使用python httplib或urllib2进行Google API批处理请求?

来自分类Dev

二进制的Python 2.7.3 urllib2 urlopen响应

来自分类Dev

对API的多个URL请求,而不会从urllib2或请求中获取错误

来自分类Dev

urllib2无法识别从href标签中的Beautiful Soup中提取的url

来自分类Dev

如何在python 2.7中获取urllib2的状态代码

来自分类Dev

如何在两个类中同时使用urllib2

来自分类Dev

处理身份验证通过urllib2从经过身份验证的网站检索图像

来自分类Dev

urllib2:即使出现异常也获取URL内容

Related 相关文章

  1. 1

    如何使用urllib2获取cookie

  2. 2

    Python urllib2中的语法问题?

  3. 3

    urllib,urllib2,urllib.request.open,AttributeError:“模块”对象没有属性“ urlopen”

  4. 4

    urllib2中未知的URL类型错误

  5. 5

    urllib2中未知的url类型错误

  6. 6

    如何处理urllib2套接字超时?

  7. 7

    python urllib2无法获取特定的URL

  8. 8

    使用python urllib2返回url文件流

  9. 9

    urllib2 允许使用代理重定向 url

  10. 10

    如何通过代理调试urllib2请求

  11. 11

    Python-如何知道您使用urllib2登录

  12. 12

    如何使用urllib2在Python中发送标头

  13. 13

    使用urllib2来获取3.3.2中的Internet资源

  14. 14

    在urllib2中使用certifi模块?

  15. 15

    urllib2比python3中的请求慢吗

  16. 16

    使用urllib2不能同时执行python中的线程

  17. 17

    urllib2 - 计算 .csv 文件中的行数 - python

  18. 18

    如何在Python中使用urlopen或urllib2避免基于国家/地区的重定向

  19. 19

    如何在不使用 urlopen 的情况下发出 urllib2 POST 请求?

  20. 20

    您如何使用urllib2(和urllib)python将cookie发送到网站?

  21. 21

    如何使用python 3构建对neutrinoapi的请求?(将urllib2请求转换为urllib)

  22. 22

    如何使用python httplib或urllib2进行Google API批处理请求?

  23. 23

    二进制的Python 2.7.3 urllib2 urlopen响应

  24. 24

    对API的多个URL请求,而不会从urllib2或请求中获取错误

  25. 25

    urllib2无法识别从href标签中的Beautiful Soup中提取的url

  26. 26

    如何在python 2.7中获取urllib2的状态代码

  27. 27

    如何在两个类中同时使用urllib2

  28. 28

    处理身份验证通过urllib2从经过身份验证的网站检索图像

  29. 29

    urllib2:即使出现异常也获取URL内容

热门标签

归档