什么是ZWNBSP,怎么去除零宽度空白字符

Python与SEO 思享 2392浏览

之前转载了一篇获取百度下拉的文章《Python获取百度下拉关键词》今天在使用过程中,发现可以访问接口获取下拉词,但是使用requests请求获取的的却是{}。我再将字符直接写入接口,而非用形参又没有问题。最后无奈将请求的url变量打印,输出的地址也没有问题,最后,将输出的文本复制后发现了问题,字符中多了ZWNBSP

零宽度空白字符

于是百度了一下,这到底是是个什么玩意。获得如下答案:

什么是ZWNBSP?

UTF-8有一个BOM(Byte Order Mark)的问题。

在Unicode编码中有一个叫做"zero-width no-break space (ZWNBSP)"的字符,它的编码是0xFEFF。而0xFEFF在是一个实际中不存在的字符,所以不应该出现在实际传输中。UCSUCS (Unicode Character Set) 规范建议我们在传输字节流前,先传输字符"ZWNBSP"。这样如果接收者收到FEFF,就表明这个字节流是Big-Endian的;如果收到FFFE,就表明这个字节流是Little- Endian的。因此字符"ZWNBSP"又被称作BOM。

解决办法

# 从第二位开始取即可
str[1:]

比如,在获取下拉的代码中,替换url为

url= f"https://www.baidu.com/sugrec?pre=1&ie=utf-8&json=1&prod=pc&wd={word[1:]}"

最后,问题解决~

推荐阅读

宝塔面板自动续签ssl证书失败的解决办法

Baota面板已经设置了SSL证书的自动续订,但我记得它从未成功。最近,我发现有些朋友也遇到了这个问题,所以我在论坛中找到了解决方案。 设置警报通知 我以前一直在使用这种方法,有S...

Python实现聚合问答采集文章

最近在一个社区得到了一个用python聚合问答的工具,但是因为已经打包成程序了,所以无法研究,于是在网上找了一个网友分享的源代码,转载于此,供志愿者学习和后期扩展。这个工具可以通过头条搜索、百度下拉结果、搜狗下拉、百度知道搜索、新浪爱问、搜狗问问,将......

pycharm怎么用国内镜像安装第三方库

1、在pycharm中打开Terminal,如下图。 2、以安装pymysql库为例,输入以下命令回车即可使用镜像安装。 pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pymysql ......