爬虫学习:毛毛组案例

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.mzph.cn/diannao/1566.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# WPF布局

布局&#xff1a; 1、Grid: <Window x:Class"WpfApp2.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml" xmlns:d"http://schemas.microsoft.com…

C# 多线程 未完

基本概念什么是线程为什么要多线程重复任务希望同时进行(比如对于数组中的每个元素都进行相同且耗时的操作)多个不同任务希望同时进行&#xff0c;互不干扰(比如有多个后台线程需要做轮询等操作) 什么是线程池一组预先创建的线程&#xff0c;可以被重复使用来执行多个任务异步编…

spring版本介绍

Spring Framework 是一个广泛使用的 Java 平台&#xff0c;用于构建企业级应用程序。它提供了一个全面的编程和配置模型&#xff0c;支持现代 Java 应用程序的最佳实践&#xff0c;如依赖注入、面向切面编程以及基于注解的编程模型。自从 Spring 1.0 发布以来&#xff0c;已经经…

阿里云获取个人免费ssl证书【总耗时1分钟】【隐藏的操作流程】

1共10张图 按照图片中的指示流程1分钟就获取好了 对比&#xff1a;自己搭建个docker制作获取&#xff0c;需要10分钟以上 ps&#xff1a;看不懂图片我&#xff0c;99RMB&#xff0c;远程搞【专业领域的ssl证书选择】

JDBC学习

DriverManager&#xff08;驱动管理类&#xff09; Drivermanager的作用有&#xff1a; 1.注册驱动&#xff1b; 2.获取数据库连接 Class.forName("com.mysql.cj.jdbc.Driver"); 这一行的作用就是注册Mysql驱动&#xff08;把我们下载的jar包加载到内存里去&…

【QT进阶】Qt http编程之用户登录注册功能实现

往期回顾 【QT进阶】Qt http编程之http与https简单介绍-CSDN博客 【QT进阶】Qt http编程之后端API测试工具postman使用介绍-CSDN博客 【QT进阶】Qt http编程之http相关类的简单介绍-CSDN博客 【QT进阶】Qt http编程之用户登录注册功能实现 一、最终效果展示 重点在逻辑实现&a…

6. DAX 时间函数-- DATE 日期--FIRSTDATE \LASTDATE\DATESMTD\DATESQTD\DATESYTD

函数名目的语法返回值FIRSTDATE 返回指定日期列在当前上下文中的第一个非空日期。FIRSTDATE ( <日期列> )表 包含具有日期值的单列和单行的表。LASTDATE返回指定日期列在当前上下文中的最后一个非空日期。LASTDATE ( <日期列> )表 包含具有日期值的单列和单行的表。…

为主机配置IP

第一种方法&#xff1a;nmcli #nmcli connection modify eth0 ipv4.method manual ipv4.addresses 172.25.254.100/24 ipv4.gateway 172.25.254.2 ipv4.dns 114.114.114.114 autoconnect yes #nmcli c up etho //激活网卡命令&#xff08;网卡早就配好&#xff0c;只是修改i…

JVM 如何判断对象是否可回收

垃圾回收器在对堆进行回收之前&#xff0c;首先需要确定哪些对象是可回收的。常用的算法有两种&#xff0c;引用计数算法和根搜索算法。 1. 引用计数算法 引用计数算法给每个对象添加引用计数器&#xff0c;用于记录对象被引用的计数&#xff0c;引用计数为 0 的对象即为可回收…

代码随想录训练营24day-贪心算法2

一、122 买卖股票最佳时机 题目介绍限制条件&#xff0c;必须卖了再买&#xff0c;而且当前交易一只股票。一开始想法是去遍历&#xff0c;找到每个区间段间的差值&#xff0c;然后再相加。看了解答&#xff0c;其实每一天的利润&#xff0c;都是可以用差值表示出来&#xff0…

详解JVM类加载

从类被加载到虚拟机内存中开始&#xff0c;到释放内存总共有7个步骤&#xff1a;加载&#xff08;Loading&#xff09;、验证&#xff08;Verification&#xff09;、准备&#xff08;Preparation&#xff09;、解析&#xff08;Resolution&#xff09;、初始化&#xff08;Ini…

golang学习笔记(net/http库基本使用)

关于net/http库 我们先看看标准库net/http如何处理一个请求。 import ("fmt""log""net/http" )var count 0func main() {http.HandleFunc("/", handler)http.HandleFunc("/count", counter)log.Fatal(http.ListenAndServ…

cd /op-bash: 无法为立即文档创建临时文件: 设备上没有空间

问题 在shell输入命令按tab键时出现以下报错 (base) [link999hadoop102 ~]$ cd /op-bash: 无法为立即文档创建临时文件: 设备上没有空间 -bash: cd: /op: 没有那个文件或目录原因分析 磁盘空间不够 df -Th # 通过命令查看具体情况解决 1、清理大文件 进入到 容量-已用 使…

PostCSS详细介绍

PostCSS详细介绍 PostCSS是一个用JavaScript工具和插件转换CSS代码的工具&#xff0c;它允许开发者使用JavaScript插件来处理和转换CSS代码。其核心是一个解析器&#xff0c;可以将CSS代码转换成抽象语法树&#xff08;AST&#xff09;&#xff0c;然后通过插件对AST进行各种处…

展开说说:Android Fragment完全解析-卷二

书接上回&#xff0c;说一下fragment搭配Viewpager的使用。 是什么 Fragment已经在卷一整理过了&#xff0c;这里说一下ViewPager&#xff0c;ViewPager是一个可以左右滑动的容器组件&#xff0c;继承自ViewGroup。一般是用在首页banner和详情页的轮播图展示、APP首次使用的新…

【数据结构】LRU缓存

LRU缓存 LRU&#xff08;Least Recently Used&#xff0c;最近最少使用&#xff09;缓存是一种缓存淘汰策略&#xff0c;用于管理缓存中数据的存储和淘汰。LRU缓存会优先淘汰最近最少使用的数据&#xff0c;以便为新数据腾出空间。它通常用于提高应用程序的性能&#xff0c;通…

《深入浅出.NET框架设计与实现》笔记1——.NET CLI 概述

.NET CLI&#xff08;NET 命令行接口&#xff09;工具是用于开发生成运行和发布.NET应用程序的跨平台工具链。 一、CLI命令 默认安装的命令有 1、基本命令 new restore build publish run test vstest pack migrate clean sln help store 2、项目修改命令 add package add …

使用easyexcel将csv转为excel

一.背景 供应商系统下载的csv文件不支持域控&#xff08;主要是第三方wps服务不能对csv文件加密&#xff0c;但是可以对office系列产品进行权限访问的加密控制&#xff09;。因此思路就改为现将csv文件转为excel文件&#xff0c;然后对excel文件进行加域控制。本文主要介绍如何…

12.Hexo helpers类似函数和data folder数据文件夹

helper Hexo里的helper&#xff0c;或者说是函数 基本上就是小函数&#xff0c;可以在layout布局中使用&#xff0c;可以允许做一些事情 如字符串操作、检查true或false、检查是否在一个页面上、打印出某个页面中的日期或时间特定格式 打开index.ejs trim 可以通过 <%…

向量数据库的崛起:如何改变数据存储与机器学习的未来

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…