Python爬虫——大众点评,爬取用户电影评论,CSS字体加密

  • Post author:
  • Post category:python


最近一直在学习爬虫,刚好到了反爬这一块,听朋友说大众点评的反爬挺厉害,分析了一下发现还是老熟人,字体反爬,没错,与猫眼电影一样也是字体反爬,感兴趣的朋友可以点

猫眼电影

了解详情,不过和猫眼的字体反爬不同,大众点评是通过css文件来进行加密,下面就让我们一起来分析分析吧



爬取网址

本次爬取网址:

华联影城(平谷店)



字体加密原理分析

这是网页显示的评论

在这里插入图片描述

点击检查打开开发者工具,可以看到一条评论有个别字是使用标签代替的,然后通过类选择器进行css加密

在这里插入图片描述

既然知道了css加密,那么我们首先要找的就是CSS文件了,右击点击查看源代码,这就是我们要找的css加密文件了

在这里插入图片描述

打开这个文件,可以看到密密麻麻的一堆标签,这就是每个类对应的字体坐标

在这里插入图片描述

找到坐标之后,我们还需要找到他加密的字体文件,字体文件的链接也藏在这个文件中,

Ctrl+F

搜索

.svg

,一共有3个文件,都是字体加密的文件

在这里插入图片描述

打开之后的样子

在这里插入图片描述

查看源代码

在这里插入图片描述

这里我们只要注意y轴就行了,x轴是直接通过除以字体大小得出来,不过y会有一些细微的差别,我们只需要取相近的值,就能判断是哪个字了



代码

分析完后,我们就开始爬取吧,因为爬取的数据也不是很多,所以我们直接使用

requests

模块进行爬取,简单的代码我就不上了,直接上干货



获取3个字体加密文件

取出.css文件,在依次取出里面的3个.svg文件,最后组成映射字典保存起来

def get_encryption_font(self, html):
        """获取加密字体"""
        font_href = "http:" + html.xpath("//link[@rel='stylesheet'][2]/@href")[0]
        # 发送请求下载字体
        encryption_font = requests.get(font_href, headers=self.headers).text
        encryption_font_list = re.findall(r"(\w+)\{background:-(\d+).0px -(\d+).0px;\}", encryption_font)
        self.encryption_font_map_dict = 



版权声明:本文为weixin_44440904原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。