我一直不愿意发表一个关于这个问题,但经过3天的谷歌我不能得到这个工作。长话短说,我正在为魔兽世界制作一个raid装备追踪器。你知道吗
我用BS4来处理网页垃圾,我可以拉网页和刮的信息,我需要从它。我遇到的问题是,玩家的名字中有一个扩展的ascii字符,例如:thermíte。(i是alt+161)
http://us.battle.net/wow/en/character/garrosh/thermíte/advanced
我正在尝试找出如何重新编码url,使其更像这样:
http://us.battle.net/wow/en/character/garrosh/therm%C3%ADte/advanced
我使用tkinter作为gui,我让用户从下拉列表中选择他们的领域,然后在一个输入字段中键入字符名。你知道吗
namefield = Entry(window, textvariable=toonname)
我有一个刮功能,执行主配置文件页面的初始刮。在这里,我将namefield的值赋给一个全局变量
namefield = Entry(window, textvariable=toonname, command=firstscrape)
我想我已经接近了,因为当它通过“thermíte”时,scrape函数会打印出“therm\xC3\xADte”,我所需要做的就是用“%”替换“\x”,我就变成了黄金。但这行不通。我可以用mastername.查找('\x'),它会在字符串中找到它的实例,但是mastername.replace('\x','%')实际上不会替换任何内容。你知道吗
我试过r'\x'\%'r'\x'等的各种组合。没有骰子。你知道吗
最后,当我试图做一些事情,如编码成拉丁语,然后解码回utf-8,我得到的错误,它如何不能处理扩展ascii字符。你知道吗
urlpart1 = "http://us.battle.net/wow/en/character/garrosh/"
urlpart2 = mastername
urlpart3 = "/advanced"
url = urlpart1 + urlpart2 + urlpart3
这就是我用来尝试重建最终url的方法(在修复名称问题之前,我将保持领域不变)
Tldr公司:
我正在尝试使用扩展ascii的url,例如:
http://us.battle.net/wow/en/character/garrosh/thermíte/advanced
它变成了一个浏览器可以轻松处理的url,比如:
http://us.battle.net/wow/en/character/garrosh/therm%C3%ADte/advanced
使用所有正常的扩展ascii字符。你知道吗
我希望这是有意义的。你知道吗
这是一个完整的脚本atm粘贴箱。有一些东西,在它的自动取款机是没有利用,直到后来。pastebin link
您可以尝试以下方法:
urllib.quote()“安全”URL对字符串的字符进行编码。您不希望所有字符都受到影响,只希望“/”字符之间的所有字符都受到影响,不包括初始的“http://”。所以strip和split函数把它们从方程中去掉,然后用
+
操作符和join
把它们连接起来编辑:这是我的责任,因为我没有阅读文档。。。更干净:
结果url中不应包含非ascii字符。确保
mastername
是Unicode字符串(在Python3上为isinstance(mastername, str)
):相关问题 更多 >
编程相关推荐