python爬虫破解大众点评的字体加密

大众点评最大的难题就是字体加密,也就是这样

     

很明显点评网宁可错杀一万,也不肯放过一个,干脆使用了自己定义的字体。不过既然自定义了字体,那么网页肯定需要加载字体文件。

谷歌浏览器,右键检查,进入network 然后刷新页面,点击Font。

我们来下载这个加载的字体:8f8cfde4.woff 

右键 copy like address 

粘贴到新页面 即可下载

将下载的字体导入FontEditor中打开 

(百度家的在线字体编辑器)

http://fontstore.baidu.com/static/editor/index.html

 

导入之后:

 

我们再结合网页源代码,就得到了相应乱码与数字的对应关系:

 

 

我们可以发现网页中的乱码和FontEditor中的乱码后四位是一样的,比如说图中某店铺的点评数为2481,在网页源代码用【1】来表示,这在FontEditor的字体编辑器中对应的是【unie801,unieb78,uniefe4】。

所以我们要做的是:

1、下载网站font字体包

2、将font字体包中导入FontEditor 观察得到乱码与数字的关系

3、前缀替换,并将字体名字和它们所对应的乱码构成一个字典 

运行看一下:

 

没错,跟刚才观察的结果一致。

那么下面我们获取网页源代码,并根据刚才 get_font()构成的字典进行替换。

再看一下结果:

 

这样就破解了点评网的字体加密。

剩下各位就可以自行用喜欢的解析方式来解析html啦。

 

本文首发于公众号《凹凸玩数据》

本文相关爬python代码已上传公众号后台,

关注公众号《凹凸玩数据》后回复“大众点评”即可

Python爬虫是一种自动化抓取网页数据的程序,使用Python语言可以编写出各种功能强大的爬虫。在编写爬虫程序时,通常会用到如`requests`库进行网络请求,`BeautifulSoup`或`lxml`等库来解析HTML页面。 以下是一个简单的Python爬虫示例,用于爬取大众点评的某一页数据。请注意,由于网站的结构可能随时更改,以下代码可能需要根据实际情况进行调整。 ```python import requests from bs4 import BeautifulSoup # 目标URL,这里需要替换成实际要爬取的大众点评页面地址 url = 'https://www.dianping.com/某城市/某分类' # 发送HTTP请求 headers = { 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3'} response = requests.get(url, headers=headers) # 检查请求是否成功 if response.status_code == 200: # 使用BeautifulSoup解析HTML soup = BeautifulSoup(response.text, 'lxml') # 提取信息,这里以提取店铺名称和评分为例 list = [] for item in soup.find_all('div', class_='店铺信息类名'): # 需要根据实际的HTML结构替换'店铺信息类名' name = item.find('a', class_='店铺名称类名').text # 替换'店铺名称类名' rating = item.find('span', class_='评分类名').text # 替换'评分类名' list.append({'name': name, 'rating': rating}) # 打印提取的信息 for store in list: print(store) else: print("请求失败,状态码:", response.status_code) ``` 在实际使用中,大众点评网站可能有反爬虫措施,如动态加载内容、验证码、IP限制等。这时可能需要使用更高级的技术如Selenium进行模拟浏览器操作,或者设置合适的请求间隔、使用代理等方法。 使用爬虫时,请遵守相关法律法规和网站的使用协议,不要进行任何侵犯隐私或违法的行为。
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

朱小五是凹凸君呀

感谢支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值