gpt4 book ai didi

python - 带有给出 UnicodeEncodeError 的国家字符的 URL

转载 作者:太空宇宙 更新时间:2023-11-03 17:42:49 26 4
gpt4 key购买 nike

我正在尝试提取字典条目:

url = 'http://www.lingvo.ua/uk/Interpret/uk-ru/вікно'
# parsed_url = urlparse(url)
# parameters = parse_qs(parsed_url.query)
# url = parsed_url._replace(query=urlencode(parameters, doseq=True)).geturl()
page = urllib.request.urlopen(url)
pageWritten = page.read()
pageReady = pageWritten.decode('utf-8')
xmldata = lxml.html.document_fromstring(pageReady)
text = xmldata.xpath(//div[@class="js-article-html g-card"])

无论打开或关闭注释行,它都会不断出现错误:

UnicodeEncodeError: 'ascii' codec can't encode characters in position 24-28: ordinal not in range(128)

最佳答案

您的问题是您的 URL 路径中有非 ASCII 字符,必须使用 urllib.parse.quote(string) 对其进行正确编码。在 Python 3 或 urllib.quote(string) 中在 Python 2 中。

# Python 3
import urllib.parse
url = 'http://www.lingvo.ua' + urllib.parse.quote('/uk/Interpret/uk-ru/вікно')

# Python 2
import urllib
url = 'http://www.lingvo.ua' + urllib.quote(u'/uk/Interpret/uk-ru/вікно'.encode('UTF-8'))

注:根据What is the proper way to URL encode Unicode characters? , URL 应编码为 UTF-8。但是,这并不排除对生成的非 ASCII、UTF-8 字符进行百分比编码。

关于python - 带有给出 UnicodeEncodeError 的国家字符的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30260993/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com