使用 Python破解大众点评字体加密(SVG反爬虫)
时间:2022-07-25
本文章向大家介绍使用 Python破解大众点评字体加密(SVG反爬虫),主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
前言
大众点评拥有大量高质量评论信息、种草信息,同时也有非常严格的反爬虫机制。
今天我们一起使用 Python破解大众点评字体加密,获取极具商业价值的信息。
本文知识点:
- requests 的使用
- xpath 的使用
- svg 字体处理
开发环境:
- 解释器:Python 3.6.5 | Anaconda, Inc.
- 编辑器:pycharm 专业版
目标地址
http://www.dianping.com/shop/130096343/review_all
代码
导入工具
import requests
import re
获取数据
# ctrl + r
headers = { "Cookie": "加上自己的cookie",
"Host": "www.dianping.com",
"Referer": "http://www.dianping.com/shop/130096343/review_all",
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.92 Safari/537.36",
}response = requests.get('http://www.dianping.com/shop/130096343/review_all', headers=headers)
# http://www.dianping.com/shop/130096343/review_all
print(response.text)with open('01 网页数据_加密.html', mode='w', encoding='utf-8') as f:
f.write(response.text)
css_url = re.findall('<link rel="stylesheet" type="text/css" href="(//s3plus.meituan.*?)">', response.text)
css_url = 'http:' + css_url[0]
css_response = requests.get(css_url)with open('02 css样式.css', mode='w', encoding='utf-8') as f:
f.write(css_response.text)
print(css_response.text)
svg_url = re.findall(r'svgmtsi[class^="eb"].*?background-image: url((.*?));', css_response.text)
svg_url = 'http:' + svg_url[0]
svg_response = requests.get(svg_url)with open('03 svgy隐射表.svg', mode='w', encoding='utf-8') as f:
f.write(svg_response.text)
print(svg_url)
详细项目视频讲解地址
https://www.bilibili.com/video/BV1uC4y1t78d/
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- vue.js如何快速入门第1篇
- 3.列表-HTML基础
- 启动时间的一些分析
- 1.HTML基础知识-HTML进阶
- 浅析一个postgresql的死锁问题
- 你的第一个React App (二 ) - 应用组件开发
- 在Angular应用里使用Redux
- Elasticsearch 日志配置详解
- Cypress系列(52)- fixture() 命令详解
- Docker学习笔记---Dockerfile
- Java面试高频知识点汇总 JVM专题
- Java面试高频知识点汇总 网络协议专题
- 「Mysql优化大师一」mysql服务性能剖析工具
- FPGA设计心得(12)如何正确使用 in_system_ibert ?
- Java面试高频知识点汇总 垃圾回收(GC)机制专题