爬虫案例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, urlencode

base_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 s4
     
params = {
    '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())

在这里插入图片描述

相关推荐

  1. Python爬虫实战案例

    2024-03-14 02:08:02       63 阅读
  2. Python爬虫案例分享

    2024-03-14 02:08:02       55 阅读
  3. python爬虫案例分享

    2024-03-14 02:08:02       55 阅读
  4. urllib爬虫案例(实战)

    2024-03-14 02:08:02       42 阅读
  5. 爬虫(小案例

    2024-03-14 02:08:02       34 阅读
  6. 爬虫案例实战

    2024-03-14 02:08:02       27 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-03-14 02:08:02       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-03-14 02:08:02       100 阅读
  3. 在Django里面运行非项目文件

    2024-03-14 02:08:02       82 阅读
  4. Python语言-面向对象

    2024-03-14 02:08:02       91 阅读

热门阅读

  1. Spring MVC ModelAndViewMethodReturnValueHandler原理解析

    2024-03-14 02:08:02       46 阅读
  2. 一文彻底搞定 Python 的 Exception 处理

    2024-03-14 02:08:02       45 阅读
  3. Node.js的事件驱动模型(非阻塞I/O)

    2024-03-14 02:08:02       42 阅读
  4. C++初阶

    C++初阶

    2024-03-14 02:08:02      42 阅读
  5. FDU 2020 | 1. 食堂打饭

    2024-03-14 02:08:02       35 阅读
  6. Kafka及Zookeeper集群部署

    2024-03-14 02:08:02       49 阅读