当前位置: 首页 > news >正文

爬虫案例1

通过get请求直接获取电影信息
目标页面: https://spa6.scrape.center/

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在network中可以看到是通过Ajax发送的请求,这个请求在postman中也可以直接请求成功,这只是一个用来练习爬虫的,没有达到js逆向的过程,需要通过分析js 代码来获取到token的值,

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
红色箭头返回的就是token
在这里插入图片描述
在这里插入图片描述

_0x31a891是一个list,在js中是array,使用join 方法 变成 '/api/movie,1709970141' , 第一个值是链接的路径是固定的,第二值是时间戳是整数的哦,在观察,是通过js中的哈希加密的,使用的方法是SHA1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

再次重组成array 时间戳用了两次,上一次是哈希加密的时候,第二次是在这里重组 [哈希加密值,时间戳]

最后 base64加密 [哈希加密值,时间戳][‘join].(’,')
在这里插入图片描述


import hashlib
import requests
import base64
import time
from urllib.parse import urlsplit, urlencodebase_url = 'https://spa6.scrape.center/api/movie?'
timStr = str(int(time.time()))
url_path = urlsplit(base_url).path # 获取base-url 路径def get_token():s1 = ','.join([url_path, timStr]) # [路径, 时间戳]s2 = hashlib.sha1(s1.encode()).hexdigest() # 哈希加密后获取字符串结果s3 = ','.join([s2, timStr]) # 哈希加密结果和时间戳s4 = base64.b64encode(s3.encode('utf-8')).decode('utf-8') # base64加密后获取字符串return s4params = {'limit': 10,'offset': 0,'token': get_token()
}url = base_url + urlencode(params)
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36'
}resp = requests.get(url=url, headers=headers)
print(resp.status_code)
print(resp.json())

在这里插入图片描述

http://www.lryc.cn/news/317323.html

相关文章:

  • 修改表结构
  • Rust 语言中的 into() 方法
  • MinIO权限提升漏洞CVE-2024-24747详细解决办法
  • “我快无聊死了”用英语怎么说?柯桥英语口语学习,成人零基础学外语
  • JS ATM练习案例(复习循环知识)
  • Android 二维码相关(一)
  • 利用tree命令自动保存文件层级结构
  • C++初阶:内存管理
  • vue和react的diff算法源码
  • Coordinate Attention(CVPR 2021)
  • 计算机网络-第4章 网络层(2)
  • 重学SpringBoot3-WebMvcAutoConfiguration类
  • 探索数据结构:深入了解顺序表的奥秘
  • 苍穹外卖学习-----2024/03/010---redis,店铺营业状态设置
  • RUST 每日一省:发布到crates.io
  • String类及其常用方法
  • 1094. 拼车
  • Docker进阶:深入了解容器数据卷
  • 升级版本彻底解决bootstrap-table-fixed-columns固定列后行对不齐问题
  • 打破边界:深入探索STUN在实现无缝NAT穿越和WebRTC通信中的核心作用
  • 浅谈 前端的动态绑定属性
  • Sklearn支持向量机
  • 【Lazy ORM】 小工具 acw 本地客户端 你负责点击页面,他负责输出代码
  • 《详解:鸿蒙NEXT开发核心技术》
  • 快速排序 刷题笔记
  • DAY by DAY 史上最全的Linux常用命令汇总----man
  • 十六、接口隔离原则、反射、依赖注入
  • Docker 进阶
  • 科研学习|论文解读——一种修正评分偏差并精细聚类中心的协同过滤推荐算法
  • 云计算项目十一:构建完整的日志分析平台