XiaoYangTech 发表于 2024-11-23 22:46

人教社web逆向遇到了问题,有关阿里云WAF和Python爬虫

本帖最后由 XiaoYangTech 于 2024-11-23 23:00 编辑

人教社电子教材,https://book.pep.com.cn/1411001138231/mobile/index.html,首先,直接打开,会4xx,设置referer为https://jc.pep.com.cn/后,正常解析出body,但是我的目标是请求到课本
首先课本后面跟一串随机数字,这串数字浏览器提示jquery请求,已经找到相关的JSON API
其次课本的页数由JS控制,已经跑通,但是使用简短的代码请求固定课本(假设所有请求设置好referer)
import requests
import time
import random
# 图片的基础URL
base_image_url = 'https://book.pep.com.cn/1411001138232/files/mobile/{}.jpg?230907101704'
# 人教社官网教材界面的URL(作为referer)
referer_url = 'https://book.pep.com.cn/'

# 设置请求头,伪装成浏览器访问
headers = {
    'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.110 Safari/537.3',
    'Referer': referer_url
}

# 从第1张图片开始下载
image_index = 1

while True:
    # 构造当前图片的URL
    image_url = base_image_url.format(image_index)
   
    # 发送GET请求下载图片
    response = requests.get(image_url, headers=headers)
   
    # 检查请求是否成功
    if response.status_code == 200:
      # 将图片内容写入文件
      with open(f'{image_index}.jpg', 'wb') as file:
            file.write(response.content)
      print(f"图片 {image_index} 下载成功")
      time.sleep(random.uniform(1, 1.2))
    else:
      print(f"图片 {image_index} 下载失败,状态码:{response.status_code}")
      break# 停止下载
   
    # 增加图片索引
    image_index += 1
下载几页以后就输出16KB的文件,内容为阿里云滑块验证,已经加入随机延时也不行,现在怎么绕过这个烦人的WAF

42328669425 发表于 2024-11-24 01:03

会不会图片url不需要.jpg后面的部分

飘缈孤鸿影 发表于 2024-11-24 03:25

一楼是正解,删除URL里的“?230907101704”这些后能正常运行,
不过仍然需要加入判断页码总数,或者用其他判断方式来判定获取所有页码的文件后停止请求,目前下载动作会无限增加请求
页: [1]
查看完整版本: 人教社web逆向遇到了问题,有关阿里云WAF和Python爬虫