大众点评 爬虫抓取 数字文字解密

分析网页内容

原网址:https://www.dianping.com/zhengzhou/ch0
大家在抓取网页的时候会遇到各种问题,比如字体加密,但是当我爬取大众点评网站的时候发现,它里面的字体以及文字并不是不同的加密,利用css定位来显示所需要的文字和数字,如图:
在这里插入图片描述
所显示的只有span标签和class 并没有数字信息,
通过查看css信息就会发现在里面有个网址,
在这里插入图片描述
打开网址发现里面是数字信息,就是用来显示价格等信息的,
在这里插入图片描述

查看元素反复对比发现是使用css定位用来显示所需要的信息,span标签里的class的定位,
在这里插入图片描述
知道怎么解析了,然后就是怎么获取span里面class的定位信息,从页面上直接抓取有点不太显示,只能另辟途径了,
就在我查看页面的源代码的时候,发现这个网站,有这样一个注释 < !-- 图文混排css --> , 发现下面的css样式也是加载服务器里面的,然后就访问一下就出现了惊喜在这里插入图片描述
访问css网址
在这里插入图片描述
里面的信息也正是我们想要的,
这样我们就能通过解析这两个网址来编写代码进行文字和数字的解密,

编写代码实现解密

这里我就简单的写一下,具体解密的过程,所以编写代码不是很规范,也并没有爬取整个的网页,
根据上面的分析,需要先获取span标签里面的class 我们就以上面的两个为例进行一下解密演示:

<span class="hkcc8"><span>		 # 9
<span class="hkdvi"><span>       # 5

根据类名如:hkcc8 获取 该类名的定位数值

# 导的包
import re
import requests
import lxml.html


# 获取css页面的详情信息,用正则匹配得到css的定位数据
def css_info(info):
    # css 页面   这个网址是会变化的,修改为自己获取到的
    css_html = requests.get('https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/6c3897952c363a4c22712329d2ff2e93.css').text
    # mty2pe{background:-180.0px -1664.0px;}
    # 正则,这里有个坑,刚开始使用+拼接,不能匹配
    str_css = r'%s{background:-(\d+).0px -(\d+).0px'% info
    css_re = re.compile(str_css)
    info_css = css_re.findall(css_html)
    # print(css_html)
    # print(str_css)
    # print(info_css)
    return info_css

输入:hkcc8 得到结果:475 64

接下来解析数字的网址

result = requests.get('https://s3plus.meituan.net/v1/mss_0a06a471f9514fc79c981b5466f56b91/svgtextcss/d32298136aa6a4b7715bd2d11b41727c.svg')
tree = lxml.html.fromstring(result.content)
a = tree.xpath('//text[@y="41"]/text()')[0]
b = tree.xpath('//text[@y="88"]/text()')[0]
c = tree.xpath('//text[@y="126"]/text()')[0]

# x ,y 是得到的两个坐标点
# 调用上面的函数
x,y = css_info('hkcc8')[0]
x,y = int(x),int(y)
print('坐标',x,y)
if y <= 41:
    print('数字:',a[x // 12])
elif y <= 88:
    print('数字:',b[x // 12])
else:
    print('数字:',c[x // 12])

得到的结果如下:
在这里插入图片描述
在这里插入图片描述

这里只是简单的写一下解密的思路,,,希望对你能起到帮助
网页信息是经常变化的,所以还请根据自己当时访问的网页信息进行解码,,,

  • 4
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 13
    评论
要在Wireshark中抓取解密HTTPS数据包,需要进行以下配置步骤: 1. 首先,确保你已经安装了最新版本的Wireshark。你可以从Wireshark官方网站(https://www.wireshark.org)下载适用于你操作系统的版本。 2. 在Wireshark中打开“偏好设置”对话框。在Windows中,你可以通过点击菜单栏的“编辑”选项,然后选择“首选项”来打开它。在macOS中,你可以点击菜单栏的“Wireshark”,然后选择“首选项”。 3. 在“首选项”对话框中,找到并点击左侧的“协议”选项。 4. 在右侧的协议列表中,找到并展开“SSL”协议。 5. 点击“SSL”协议下的“解密密钥列表”。 6. 在“解密密钥列表”对话框中,点击“+”按钮添加一个新的解密密钥。 7. 在“新解密密钥”对话框中,选择所使用的密钥类型。对于HTTPS通信,你需要选择“RSA”或“DSA”。 8. 输入相应的IP地址和端口范围。如果你只想解密特定的HTTPS通信,请输入相应的目标服务器IP地址和HTTPS端口(一般为443)。 9. 选择合适的密钥文件类型。如果你有私钥文件(通常是.pem或.p12格式),请选择“从文件导入”选项。如果你知道服务器的预共享密钥,可以选择“使用预共享密钥”。 10. 根据选择的密钥文件类型,设置相应的密钥文件路径或预共享密钥。 11. 点击“应用”和“确定”按钮保存配置。 12. 现在,重新启动Wireshark并开始捕获HTTPS流量。在过滤器中输入“ssl”以过滤显示HTTPS流量。 请注意,为了成功解密HTTPS流量,你需要具有服务器的私钥或预共享密钥。如果你没有这些信息,将无法成功解密HTTPS数据包。此外,解密HTTPS流量可能涉及到违反服务器所有者的隐私政策和法律规定,所以请确保你在合法授权的情况下进行操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 13
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值