以“冠心病”百科首页为例:
复制url后,由于我们没有进行任何处理,此时javascript请求URL并传参数存在中文时,对URL的中文参数进行编码是按照浏览器机制进行编码的,此时编码存在乱码问题。
# -*- coding: UTF-8 -*- import re from urllib.request import quote, unquote # 冠心病百科url url = 'https://baike.baidu.com/item/%E5%86%A0%E7%8A%B6%E5%8A%A8%E8%84%89%E7%B2%A5%E6%A0%B7%E7%A1%AC%E5%8C%96%E6%80%A7%E' '5%BF%83%E8%84%8F%E7%97%85/2252719?fromtitle=%E5%86%A0%E5%BF%83%E7%97%85&fromid=547914&fr=aladdin' h = unquote(url, encoding='utf-8') # 解码,将url中转码的中文字符解码 pattern = re.compile("[^u4e00-u9fa5]") # 模式匹配所有中文字符 m = re.sub(pattern, '', h) # 将模式外的所有字符用空代替,即非中文字符 print(m)
运行结果: