网页抓取 加密html(分析网页内容()原网址_分析_e操盘(图))

优采云 发布时间: 2022-04-10 15:07

  网页抓取 加密html(分析网页内容()原网址_分析_e操盘(图))

  分析网页内容

  原网址:

  大家在爬网页的时候会遇到各种问题,比如字体加密,但是我爬公众评论网站的时候发现里面的字体和文字没有加密不同,使用css定位来显示需要的文字和数字,如图:

  

  只显示跨度标签和类,没有数字信息。

  通过查看css信息,你会发现里面有一个URL,

  

  打开网站,发现里面有数字信息,用来显示价格等信息。

  

  查看元素的反复对比,发现css定位是用来展示需要的信息,span标签中class的定位,

  

  我知道如何解析它,然后如何获取该类在span中的定位信息。直接从页面抓取不是很明显,只能另寻他法。

  刚查了一下页面的源码,发现这个网站,有这么一个注释,发现服务器里也加载了下面的css样式,然后访问了一下,有惊喜

  

  访问 css 网址

  

  里面的信息正是我们想要的,

  这样我们就可以编写代码来通过解析这两个 URL 来解密文本和数字,

  写代码解密

  这里我就简单写一下具体的解密过程,所以写的代码不是很规范,并没有爬取整个网页。

  根据上面的分析,我们需要先获取span标签中的class。我们以上面两个例子为例来演示解密:

   # 9

# 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

  接下来解析号码的url

<p>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

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线