反汽车之家反爬虫

原创
04/12 20:50
阅读数 16

欢迎点击「算法与编程之美」↑关注我们!

本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。

1 问题描述

最近接到一个任务是爬取汽车之家上面各论坛的回复。但是大家都清楚汽车之家的反爬虫措施做得相当好。也是为了保护个人权益的原因或者是保护用户的信息吧。所以为了完成任务就必须要反反爬虫。这是一个很让人头痛的问题。

2 问题分析

汽车之家这个网站的反爬措施做得相当严格,首先我们来看看这个反爬措施到底是怎么样的:

                    

首先看到这样一条论坛的回复,这是网页页面上显示的原本的回复。也是我需要获取的信息。

这是刚刚那一条回复的源码,和我在网页上看到的文字有很大差别。源码上的文字是“这钱放别人包里就往外掏啊……”,而网页上的文字是“这钱一放别人包里 就是不好往外掏啊……”。如果我按照平常那样直接就去获取数据,最后的到的就是错误的数据。

其实我也发现源码中缺少的文字使用font-family属性自定义了字体,可以不影响用户解读,但是鼠标选择不到,当然爬虫也会获取到不完整的数据。

3 解决方案

通过百度看了很多博客之后,发现了一个叫ttf文件的东西,访问其中ttf文件的地址,可将ttf字体文件下载到本地。下载下来之后还不够,需要将ttf文件通过python转化为xml文件进行解析。最后发现原来他的自定义字体是通过图片做成的,儿每个字体对应的图片有固定的xyz坐标,我们就可以利用这些坐标将每个编码表示的中文汉字解析出来,通过转换,就能将编码转化为文字。但是又遇到了一个新的问题,不如“上”和“十”的坐标都为1-12-12,这个该如何是好呢?目前我没有想到非常好的办法,幸好数据量比较少,我选择手动将没有替换的文字替换上去,这个肯定是不明智的选择,但是又想不出更好的方法。如果你有更好的方法可以给我分享哦。

4 总结

其实反爬虫与反反爬虫本来就是一对敌人,但是任何反爬虫技术都有对应的反反爬虫技术来应对,俗话说兵来将挡水来土掩。只要我们认真去发现一些规律就一定能发现并解决一些问题。

编程使我快乐。

更多精彩文章:

什么是机器学习

关于网页首页设计的一点思考

新手小白应该如何学习MUI

聊一聊编程的本质

深入理解浏览器内核 - 概述

深入理解浏览器内核 - 浏览器内核介绍

深入理解浏览器内核 - 浏览器内核依赖关系

python快速求解不定积分和定积分

AI告诉你张无忌最爱的竟是...

Jupyter快速编辑高大上数学公式 泰勒展开式

Jupyter快速编辑高大上数学公式 常见希腊字母

基本初等函数 指数函数

基本初等函数 指数函数 代码篇

聊一聊JavaWeb面试

聊一聊单片机和服务器

50行代码实现简单的网站服务器

50行代码实现网站服务器 2

50行代码实现网站服务器 3

Tomcat源码分析之 doGet方法(一)

Tomcat源码分析之 doGet方法(二)

Tomcat源码分析之 doGet方法(三)

Tomcat源码分析之 doGet方法(四)

Tomcat源码分析之中文乱码(一)

一种基于状态机的 DOM 树生成技术(1)

一种基于状态机的 DOM 树生成技术(2) 

温馨提示:点击页面右下角“写留言”发表评论,期待您的参与!期待您的转发!

本文分享自微信公众号 - 算法与编程之美(algo_coding)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部