python - 如何将十六进制格式的拉丁字母映射到python中相应的拉丁字母
问题描述
我试图从网上提取数据。很少有拉丁字母以纯十六进制格式出现。
例如:
https://www.zomato.com/ncr/café-mrp-connaught-place-new-delhi
这个链接会变成
https://www.zomato.com/ncr/caf%C3%A9-mrp-connaught-place-new-delhi
我如何从这里取回拉丁字母。我想概括这一点,并对我的数据框中发生更改的所有拉丁字母进行此操作。
i=1
main_page_url = r"https://www.zomato.com/ncr/connaught-place-delhi-restaurants"
chrome_path = r"C:\Users\HPO2KOR\Desktop\chromedriver.exe"
wd = webdriver.Chrome(chrome_path)
wd.get(main_page_url)
while(i<=2):
rests = wd.find_elements_by_xpath('//a[@class="result-title hover_feedback zred bold ln24 fontsize0 "]')
for rest in rests:
df = df.append({'Rest Name' : rest.text,
'URL' : rest.get_attribute("href")}, ignore_index=True)
nxt_pg = wd.find_element_by_xpath('//a[@class="paginator_item next item"]')
nxt_pg.click()
wd.switch_to_window(wd.window_handles[0])
i+=1
wd.close()
解决方案
您可以使用urllib.parse.unquote(s)/urllib.parse.quote(s)
这是我的代码条:
>>> urllib.parse.unquote("https://www.zomato.com/ncr/caf%C3%A9-mrp-connaught-place-new-delhi")
'https://www.zomato.com/ncr/café-mrp-connaught-place-new-delhi'
>>> urllib.parse.quote('https://www.zomato.com/ncr/café-mrp-connaught-place-new-delhi')
'https%3A//www.zomato.com/ncr/caf%C3%A9-mrp-connaught-place-new-delhi'
推荐阅读
- java - Assigning to position of String - "The type of the expression must be an array type but it resolved to String" (Java)
- python - Scraping nested element on e-commerce website
- qt - How to create DropShadow effect in QML with Qt6?
- r - 出了点问题;随机森林缺少所有 ROC 指标值
- python - 使用opencv将选定的ROI保存在图像中的问题
- python - 不直接调用的 Python 模拟函数
- r - 使用 GA 进行投资组合优化的适应度函数
- sql-server - 原子 DROP 和 SELECT ... INTO 表
- python - 计算一列中两个值之间的差异,同时保持在另一列的范围内?
- azure - 得到:不好的选择;尝试在 K8 容器中挂载 azure 文件共享时用于多个文件系统(例如 nfs、cifs)