python爬虫的数据如何解决乱码_python 爬虫随笔-土办法治乱码

在解析网页时,时常可以看到如下情景:

即在UTF-8编码显示下,网页文字以方块形式出现,防止直接复制。

而网页显示则正常如下:

这种情况下,我们需要的仅仅是数字,则需要找到相应的字体对应规则。

当然,前提是这个网页还是比较沙雕的情况下才可以用土办法,我之前也在网上找了一些帖子学习了一下,例如:如何解决爬虫过程中网页中数字解析为方块的问题,第一个答案写的挺好,但是还是缺乏普适性,有两个问题,1是使用网页内容ASICII码到Unicode后,内容依旧乱码,原因在于大部分python学习者普遍用的还是UTF-8编码,而且编码与译码的知识相对繁琐,对初学者不够友好。2是,网页未必只有一种字体对应方式。

根据上述两个问题,我们分别提出有限的解决方案:

首先,转码,将字符串转为bytes类型:

而后,根据0~9各个字符的bytes类型编码,建立对应词典,示例中这个网站的网页载入有点贱嘻嘻,弄了三套对应的转换模式,现在也不知道是否每天还会更新,反正人肉分别将30个bytes类型编码与字符串做对应,用数组或者字典皆可。

最后就可以根据内容来进行转码了。

上面说到这是有限的解决方案,原因在于,如果网站实行动态加密,那可能就要去看具体的js内容了,再就是有的可能是图片,可能需要OCR来进行辅助。

在爬相应的网站的时候,友好起见,我使用了selenium+chromedriver,载入后,再刷新一次,效果更好,说的好像刷新一次以后,就不是机器人了一样哈哈。

如上,欢迎各位大师or小白来与我交流Python或数据科学相关问题。我的邮箱是dongyue_mogician@163.com。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值