爬虫学习:毛毛组案例

2024-04-22 08:12
文章标签 学习 爬虫 案例 毛毛

本文主要是介绍爬虫学习:毛毛组案例,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pip install

  • pip install requests
  • pip install base64
  • pip install pycrytodome

URL

目标网站:https://www.maomaozu.com/#/build
工具网站:https://curlconverter.com/ 简便请求发送信息,使用方法不做过多说明
我使用 cURL (bash)

import requests
import base64
import json
import time
from Crypto.Cipher import AES
from Crypto.Util.Padding import pad, unpad
# 目标网站:https://www.maomaozu.com/#/buildcookies = {'PHPSESSID': 'up6gke39b9s01slbsio4fqj9en','Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc': '1713688780','Hm_lpvt_6cd598ca665714ffcd8aca3aafc5e0dc': '1713689090','SECKEY_ABVK': '5kQXirwIrjHWtO1RWF8YhXpwJvuVbZjj3OIK3M8kzGw%3D','BMAP_SECKEY': 'jCbK4eShwM10v4L40RjDhvps7WmJvpqniC9qByzukM7Is2MnYn8yaE5PF_eFjSR8pcAnvaN1BGQGURFfyo0ENeRtnz_sJx1dJhRhzlxORuxDtFIjYKzdI288lJTjkfIFmbZNz8Pk4KBTj2BVK1AX-bBtqdT_eFiwysUElAgn7Ol3AQ9_Jkm9YoKeIyutC68xtI2fiWU8rbvDBQRDMs9NxA',
}headers = {'Accept': '*/*','Accept-Language': 'zh-CN,zh;q=0.9,en;q=0.8,en-GB;q=0.7,en-US;q=0.6','Connection': 'keep-alive','Content-Type': 'application/json; charset=UTF-8',# 'Cookie': 'PHPSESSID=up6gke39b9s01slbsio4fqj9en; Hm_lvt_6cd598ca665714ffcd8aca3aafc5e0dc=1713688780; Hm_lpvt_6cd598ca665714ffcd8aca3aafc5e0dc=1713689090; SECKEY_ABVK=5kQXirwIrjHWtO1RWF8YhXpwJvuVbZjj3OIK3M8kzGw%3D; BMAP_SECKEY=jCbK4eShwM10v4L40RjDhvps7WmJvpqniC9qByzukM7Is2MnYn8yaE5PF_eFjSR8pcAnvaN1BGQGURFfyo0ENeRtnz_sJx1dJhRhzlxORuxDtFIjYKzdI288lJTjkfIFmbZNz8Pk4KBTj2BVK1AX-bBtqdT_eFiwysUElAgn7Ol3AQ9_Jkm9YoKeIyutC68xtI2fiWU8rbvDBQRDMs9NxA','Origin': 'https://www.maomaozu.com','Referer': 'https://www.maomaozu.com/','Sec-Fetch-Dest': 'empty','Sec-Fetch-Mode': 'cors','Sec-Fetch-Site': 'same-origin','User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/125.0.0.0 Safari/537.36 Edg/125.0.0.0','sec-ch-ua': '"Microsoft Edge";v="125", "Chromium";v="125", "Not.A/Brand";v="24"','sec-ch-ua-mobile': '?0','sec-ch-ua-platform': '"Windows"',
}timeStamp = int(time.time() * 1000) # 时间戳
for page in range(1,10):# 1.请求体加密data = {"Type":0,"page":page,"expire":timeStamp}data = json.dumps(data).encode() # 转为json字符串并编码为bytes# AES encryptionkey = '55b3b62613aef1a0'.encode()  iv = '55b3b62613aef1a0'.encode()  aes = AES.new(key, AES.MODE_CBC, iv) # (1) 填充数据 满足AES加密格式data = pad(data, AES.block_size)# (2) 加密数据data = aes.encrypt(data)# (3) 对加密数据 base64 编码data = base64.b64encode(data).decode()# ========== 发送请求 ===========response = requests.post('https://www.maomaozu.com/index/build.json', cookies=cookies, headers=headers, data=data)# 2.响应数据解密data = response.text# (1) 对响应数据 base64 解码data = base64.b64decode(data)# AES decryptionkey = '0a1fea31626b3b55'.encode()iv = '0a1fea31626b3b55'.encode()aes = AES.new(key, AES.MODE_CBC, iv)# (2) 解密数据data = aes.decrypt(data)# (3) 去除填充 满足AES解密格式data = unpad(data, AES.block_size).decode()time.sleep(1)print(data)

学习前提

  • python基础
  • requests模块
  • js基础的了解
  • base64编码,了解一下原理
  • AES算法,会用代码也可以,原理了解一下

还有很多知识,不做补充

这篇关于爬虫学习:毛毛组案例的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/925249

相关文章

MyBatis分页查询实战案例完整流程

《MyBatis分页查询实战案例完整流程》MyBatis是一个强大的Java持久层框架,支持自定义SQL和高级映射,本案例以员工工资信息管理为例,详细讲解如何在IDEA中使用MyBatis结合Page... 目录1. MyBATis框架简介2. 分页查询原理与应用场景2.1 分页查询的基本原理2.1.1 分

深度解析Java @Serial 注解及常见错误案例

《深度解析Java@Serial注解及常见错误案例》Java14引入@Serial注解,用于编译时校验序列化成员,替代传统方式解决运行时错误,适用于Serializable类的方法/字段,需注意签... 目录Java @Serial 注解深度解析1. 注解本质2. 核心作用(1) 主要用途(2) 适用位置3

Java 正则表达式的使用实战案例

《Java正则表达式的使用实战案例》本文详细介绍了Java正则表达式的使用方法,涵盖语法细节、核心类方法、高级特性及实战案例,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要... 目录一、正则表达式语法详解1. 基础字符匹配2. 字符类([]定义)3. 量词(控制匹配次数)4. 边

Python Counter 函数使用案例

《PythonCounter函数使用案例》Counter是collections模块中的一个类,专门用于对可迭代对象中的元素进行计数,接下来通过本文给大家介绍PythonCounter函数使用案例... 目录一、Counter函数概述二、基本使用案例(一)列表元素计数(二)字符串字符计数(三)元组计数三、C

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

Spring Boot 整合 SSE(Server-Sent Events)实战案例(全网最全)

《SpringBoot整合SSE(Server-SentEvents)实战案例(全网最全)》本文通过实战案例讲解SpringBoot整合SSE技术,涵盖实现原理、代码配置、异常处理及前端交互,... 目录Spring Boot 整合 SSE(Server-Sent Events)1、简述SSE与其他技术的对

MySQL 临时表与复制表操作全流程案例

《MySQL临时表与复制表操作全流程案例》本文介绍MySQL临时表与复制表的区别与使用,涵盖生命周期、存储机制、操作限制、创建方法及常见问题,本文结合实例代码给大家介绍的非常详细,感兴趣的朋友跟随小... 目录一、mysql 临时表(一)核心特性拓展(二)操作全流程案例1. 复杂查询中的临时表应用2. 临时

MySQL 数据库表与查询操作实战案例

《MySQL数据库表与查询操作实战案例》本文将通过实际案例,详细介绍MySQL中数据库表的设计、数据插入以及常用的查询操作,帮助初学者快速上手,感兴趣的朋友跟随小编一起看看吧... 目录mysql 数据库表操作与查询实战案例项目一:产品相关数据库设计与创建一、数据库及表结构设计二、数据库与表的创建项目二:员

Python学习笔记之getattr和hasattr用法示例详解

《Python学习笔记之getattr和hasattr用法示例详解》在Python中,hasattr()、getattr()和setattr()是一组内置函数,用于对对象的属性进行操作和查询,这篇文章... 目录1.getattr用法详解1.1 基本作用1.2 示例1.3 原理2.hasattr用法详解2.

C#中的Drawing 类案例详解

《C#中的Drawing类案例详解》文章解析WPF与WinForms的Drawing类差异,涵盖命名空间、继承链、常用类及应用场景,通过案例展示如何创建带阴影圆角矩形按钮,强调WPF的轻量、可动画特... 目录一、Drawing 是什么?二、典型用法三、案例:画一个“带阴影的圆角矩形按钮”四、WinForm