我有一个带有特殊字符®的链接,如下面的链接。https://www.google.com/something®something
我收到一条错误消息,即UnicodeEncodeError:'ascii'编解码器无法在位置68处编码字符'\ xae':序数不在range(128)中。我查找其他海报,但仅说明如何忽略特殊字符或如何处理HTML正文中的一个。我无法删除特殊字符,因为我需要该确切的URL来提取数据。如何以正确的方式打开该URL以提取数据?
尝试用%C2%AE替换®字符,它应该可以工作。
如果您有多个链接存在相同问题,也许是这样?
import urllib.parse
for link in new_links:
url = link
url = urllib.parse.urlsplit(url)
url = list(url)
'''
url now looks like this:
[
'https',
'www.accessdata.fda.gov',
'/scripts/drugshortages/dsp_ActiveIngredientDetails.cfm',
'AI=AVYCAZ®%20(ceftazidime%20and%20avibactam)%....',
''
]
'''
url[3] = urllib.parse.quote(url[3])
url = urllib.parse.urlunsplit(url)
html = urlopen(url)
键是quote
函数,它将字符串中的特殊字符替换为其'%xx'代码。您可能必须根据链接调整url[3] = ...
行。