【爬虫笔记】关于 \u200b \xa0 \u3000等特殊字符

本文记录了在网页爬虫中遇到u200bxa0u3000等特殊字符的问题及解决方案。介绍了使用split、replace方法以及两者的结合来去除或处理这些不可见字符,旨在方便回顾和帮助他人。

在进行网页爬虫分析时,遇到了一些特殊字符,通过网络搜索找到了解决方法,所以利用这篇博文将遇到的问题以及解决方法记录下来,方便回顾,也希望这篇博文能够帮助到大家。

 \u200b \xa0 \u3000等特殊字符

这些特殊字符通常不在ASCII可见字符范围内,因此我们在浏览网页时看不到这些字符,但是在分析网页源码时会遇到。

方法一,利用split方法

处理这些字符最简单的方法是利用split方法去除。

参考博文:https://blog.youkuaiyun.com/wangbowj123/article/details/78061618

关键程序段(来自参考博文):

>>> s
'T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0'
>>> out = "".join(s.split())
>>> out
'T-shirt短袖圆领衫,体恤衫'

方法二,利用replace方法

使用split方法进行特殊字符的去除有个坏处就是原文中的空格与换行也会一并删除,原因是“split方法中不带参数时,表示分割所有换行符、制表符、空格”。如果文字中只有一两种特殊字符,也可以利用replace方法进行去除。

参考博文:https://blog.youkuaiyun.com/thewindkee/article/details/79890207

例程:

>>> s='T-shirt\xa0\xa0短袖圆领衫,体恤衫\xa0'
>>> s
'T-shirt\xa0\xa0
### 零宽度字符在隐写术中的使用 零宽度字符,如零宽空格(ZWSP,Unicode U+200B)和零宽不连字(ZWNJ,Unicode U+200C),在隐写术中被广泛用于隐藏信息。它们在文本中不可见,但可以通过特定工具检测到,因此非常适合用于隐写[^1]。 在某些隐写技术中,ZWSP 和 ZWNJ 可以分别表示二进制中的 0 和 1。例如,可以通过在文本中插入这些字符来编码信息。具体来说,ZWSP 可能表示 0,而 ZWNJ 表示 1。这种技术利用了这些字符的不可见性,使得信息在不改变文本外观的情况下被隐藏[^2]。 以下是一个简单的 Python 示例,展示如何使用这些字符进行隐写: ```python def encode_message(message): encoded = '' for char in message: binary = format(ord(char), '08b') # 将字符转换为8位二进制 for bit in binary: if bit == '0': encoded += '\u200B' # 零宽空格表示0 else: encoded += '\u200C' # 零宽不连字表示1 return encoded def decode_message(encoded): message = '' chars = [encoded[i:i+8] for i in range(0, len(encoded), 8)] for char in chars: binary = '' for c in char: if c == '\u200B': binary += '0' elif c == '\u200C': binary += '1' message += chr(int(binary, 2)) return message # 示例 original_message = "Hello, misc!" encoded_message = encode_message(original_message) decoded_message = decode_message(encoded_message) print("Encoded Message:", encoded_message) print("Decoded Message:", decoded_message) ``` 通过这种方式,信息可以在看似普通的文本中被隐藏和提取。这种技术的有效性依赖于接收方知道如何检测和解码这些隐藏的字符[^1]。
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值