猿人学第四题-CSS加密【雪碧图、样式干扰】

练习链接:http://match.yuanrenxue.com/match/4
学习链接:
https://bbs.tampermonkey.net.cn/thread-203-1-2.html
http://www.qishunwang.net/news_show_7882.aspx

在这里插入图片描述

04.js文件:

在这里插入图片描述

04.py文件

import execjs
import os,json,time,re
from requests_html import HTMLSession,HTML
session = HTMLSession()

# 获取最后的30个字符
num_dict = {
    "H/AOyW6SvqnweCAAAAAElFTkSuQmCC":0,
    "kYAKYHOb9g+7HMAAAAAElFTkSuQmCC":1,
    "8BJlTqZkAngxQAAAAASUVORK5CYII=":2,
    "D/AbAv8WdRHzjKAAAAAElFTkSuQmCC":3,
    "UL4d3X/AgqvQAAAABJRU5ErkJggg==":4,
    "B/3J2gmVZucHAAAAAASUVORK5CYII=":5,
    "gL80YzEyuMQpQAAAAASUVORK5CYII=":6,
    "LwC1sVsHrJiVs0AAAAAElFTkSuQmCC":7,
    "L8BvLZG6cpuRANAAAAAElFTkSuQmCC":8,
    "4ApbEnkB6qHqsAAAAASUVORK5CYII=":9,
}
headers = {
    'Host': 'match.yuanrenxue.com',
    'user-agent':'yuanrenxue.project',
    'Referer': 'http://match.yuanrenxue.com/match/4',
}
def parse(source, j_key):
    info = []
    html = HTML(html=source)
    for td in html.find('td'):
        # 1.获取数字和数字偏移值
        num_list = []
        for img in td.find('img'):
            mi_class, mi_style, mi_src = img.attrs['class'], img.attrs['style'], img.attrs['src']
            if j_key not in mi_class:
                left = float(re.findall(":(.*?)px",mi_style,re.S)[0]) / 11.5
                num_list.append((num_dict[mi_src[-30:]], int(left)))
        # 坐标偏移操作
        i = 0
        new_num_list = ['', '', '', '', '']
        for num, off in num_list:
            new_num_list[off + i] = str(num)
            i += 1
        info.append(int(''.join(new_num_list)))
    print(f"\n\n数据:{info} \t总和为:{sum(info)}")
    return info
    

def main():
    """
    key:WFKftevolz 
    value:ebglsfv3Wd 
    j_key:5011e193df5414ac8e1caada63eac9ea 
    datas:<tr class="number"><td><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left: -23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613334929984.png" class="img_number" style="left:34.5px"><img src="https://img-blog.csdnimg.cn/2022010613335017910.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left: -34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335011830.png" class="img_number" style="left: 23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335093798.png" class="img_number" style="left: 0.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left: 23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613334929984.png" class="img_number" style="left:-11.5px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613335093798.png" class="img_number" style="left: 34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left: -34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335017910.png" class="img_number" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010613335017910.png" class="img_number" style="left: 34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left: -23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left: -34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:0px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613335351204.png" class="img_number" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010613335093798.png" class="img_number" style="left:0.0px"><img src="https://img-blog.csdnimg.cn/2022010613335418522.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left:-11.5px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left: -11.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:0.0px"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left: 0.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335351204.png" class="img_number" style="left:0.0px"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335026381.png" class="img_number" style="left:-11.5px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left: -34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:0.0px"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left: 11.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left:0px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left:0px"><img src="https://img-blog.csdnimg.cn/2022010613335418522.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:0px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:23.0px"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left: 34.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335011830.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335017910.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335351204.png" class="img_number" style="left:-23.0px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left:23.0px"><img src="https://img-blog.csdnimg.cn/2022010613335011830.png" class="img_number" style="left:0.0px"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left:-23.0px"><img src="https://img-blog.csdnimg.cn/2022010613335017910.png" class="img_number" style="left:0px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613334929984.png" class="img_number" style="left:23.0px"><img src="https://img-blog.csdnimg.cn/2022010613335351204.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335418522.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613334945029.png" class="img_number" style="left:-23.0px"></td><td><img src="https://img-blog.csdnimg.cn/2022010613335093798.png" class="img_number" style="left: 11.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left: -23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335351204.png" class="img_number" style="left: 0.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left:0.0px"><img src="https://img-blog.csdnimg.cn/2022010613335125680.png" class="img_number" style="left: -23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335418522.png" class="img_number" style="left: 11.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335093798.png" class="img_number" style="left:11.5px"><img src="https://img-blog.csdnimg.cn/2022010613335418522.png" class="img_number" style="left:-11.5px"><img src="https://img-blog.csdnimg.cn/2022010613334929984.png" class="img_number" style="left: 23.0px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335466013.png" class="img_number" style="left: -11.5px; display: none;"><img src="https://img-blog.csdnimg.cn/2022010613335017910.png" class="img_number" style="left:0px"></td></tr>
    """
    with open(r'./04.js', encoding='utf-8', mode='r') as f:
        infos = []
        JsData = f.read()
        for page in range(1,6):
            url = f"http://match.yuanrenxue.com/api/match/4?page={page}"
            data = session.get(url, headers=headers).json()
            source, key, value = data['info'], data['key'], data['value']
            # 获取加密的隐藏值`j_key`
            j_key = execjs.compile(JsData).call('run_key', key, value)
            # 解析加密的HTML文档内容
            info = parse(source, j_key)
            infos.extend(info)
            # 获取解密的HTML文档内容
            datas = execjs.compile(JsData).call('run_html', source, key, value)
            print(f"key:{key}\nvalue:{value}\nj_key:{j_key}\n解密的HTML文档内容:{datas}")
        print("\n\n这5页的全部数字,计算加和:",sum(infos))
main()

欢迎关注,谢谢哟💌

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
对于您提到的错误TypeError: list indices must be integers or slices, not str,这是因为您在访问列表中的元素时使用了字符串作为索引,而列表的索引必须是整数或切片类型。解决这个错误的方法是使用整数或切片来访问列表中的元素。 关于您提到的猿人js逆向的问,我需要更多的信息才能为您提供具体的答案。对于爬虫编写,您可以使用Python的各种库(如Requests、BeautifulSoup、Scrapy等)来获取网页的内容,并进一步解析和处理。您可以使用这些库发送HTTP请求获取网页内容,然后使用解析库来提取您需要的数据。 爬虫编写的一般步骤如下: 1. 导入所需的库 2. 发送HTTP请求获取网页内容 3. 使用解析库解析网页内容 4. 提取所需的数据 5. 进行数据的进一步处理和存储 您可以根据具体的需求和网站的结构进行相应的编写和调试。如果您需要更具体的帮助,请提供更多的信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Python:TypeError: list indices must be integers or slices, not str报错解决及原理](https://blog.csdn.net/hhd1988/article/details/128031602)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [Python BeautifulSoup [解决方法] TypeError: list indices must be integers or slices, not str](https://download.csdn.net/download/weixin_38590567/14871394)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

迷心兔

你的鼓励将是我创作的最大动力

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

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

打赏作者

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

抵扣说明:

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

余额充值