Beautifulsoup link(url) 有一个特殊字符
Beautifulsoup link(url) has a special character
我有一个 link,它有一个特殊字符 ®,例如下面的 link。
https://www.google.com/something®某事
我收到一条错误消息,指出 UnicodeEncodeError: 'ascii' codec can't encode character '\xae' in position 68: ordinal not in 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] = ...
行。
参考:
我有一个 link,它有一个特殊字符 ®,例如下面的 link。 https://www.google.com/something®某事
我收到一条错误消息,指出 UnicodeEncodeError: 'ascii' codec can't encode character '\xae' in position 68: ordinal not in 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] = ...
行。
参考: