IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 使用python实现自动爬取得物交易记录,商品信息进行数据分析 -> 正文阅读

[Python知识库]使用python实现自动爬取得物交易记录,商品信息进行数据分析

前言

文章尽用于交流学习。

刚刚学习爬虫有一段时间,打算找一个网站突破一下,提升一下自己的爬虫与逆向能力。刚好最近买东西都在使用得物APP,所以就决定突破一下它。整个过程很曲折,踩了很多坑,遇到很多做之前没有预料到的问题。项目一共分为两个版本,第一版是由mitmproxy+appium自动化操作APP完成获取数据,由于完成之后发现爬取过程耗时很长并且无法准确的抓到指定的商品数据所以放弃,发开第二版。第二版突破了,得物sign值的加密过程,实现了使用调用API来获取商品数据。
目前实现功能:
1、定时爬取商品详情数据
2、定时爬取商品交易记录数据
3、对交易记录进行分析、统计

以上为项目的简要介绍。本人处于初学阶段,还有很多的不足之处,全文有任何疑问,欢迎各位大神指出错误。

开发流程

1、API抓包
2、破解请求数据
3、编写爬虫代码
4、反爬

实现过程

1、API抓包

我们在抓包之前可以登录得物web网站以及APP、小程序三个入口查看数据情况,会发现能获取商品信息的地方只有小程序与APP,并且小程序的数据要比APP的少很多内容。这个时候我们同时对两个入口进行抓包操作。我这里使用的抓包工具是Charles .
下载地址: Charles下载地址.
具体的安装步骤自行百度,这里不详细介绍了。

这里会遇到两个相对比较繁琐的问题:
1、配置抓取HTTPS的包
2、配置抓取APP的包
这里推荐篇文章用于解决这两个问题: 推荐文章

APP数据包与小程序数据包抓下来之后,我们会发现APP的请求数据相对与小程序的请求数据要复杂的很多,基于到时间成本与需要数据的考虑,我选择了突破小程序。ps:APP端虽然有点复杂但是最后也搞明白了。

2、破解请求数据

分析数据包

根据抓包数据我们会发现,商品详情请求数据为
在这里插入图片描述
加上sign的一个结构。
请求地址为:https://app.dewu.com/api/v1/h5/index/fire/flow/product/detail
其中spuid为商品的唯一值,其他的为默认即可,只有sign值我们无法知道来历。那么这个sign就是我们需要突破的点,不然无法通过调用API获取数据。

逆向

我这边使用的思路是通过反编译小程序的,拿到其中的加密key,然后尝试多种加密方式最终得到与抓包获得的sign相同的值。
这里我使用的逆向工具是wxappUnpacker,具体使用教程网上有很多就不一一赘述了。
反编译脚本下载地址

验证

拿着逆向获得的key构造请求参数,最终发现sign是由所有请求参数拼接,最后加上key加密生成。
构造完请求参数,就可以拿着抓包获得的header发送请求了,这里是三个接口的请求header
在这里插入图片描述
至此,破解请求数据就完了。

3、编写爬虫代码

编写代码就是一个枯燥无味的过程,文章最后会给出项目代码的github地址。
其中需要处理几个问题:
(1)如何通过python发送https请求,绕过ssl认证。
(2)如何保证每次获取的交易记录是上一次交易交易记录的后一条。
如何保证每次请求都能够成功获取数据。
(3)如何保证每次请求都能够成功获取数据,不被得物服务器拦截。

4、反爬

我目前所了解到的得物小程序做了两个反爬措施,一个是签名认证,就是刚刚提到的破解请求数据中的sign,第二是IP限流。
第一个问题在上一节中已经讲到。
第二个问题我采用的反反爬手段是使用IP代理。ps:代理是需要自行购买的。

结束语与结果展示

以上就是关于使用python实现自动爬取得物交易记录,商品信息的所有内容,如发现有遗漏或是对于文章有疑问欢迎与我沟通,邮箱:2579779624@qq.com
如文章影响得物平台利益,请通过上方联系方式与我取得联系。

Github地址

贴几张获取到的数据图
在这里插入图片描述
在这里插入图片描述

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-07-27 16:10:51  更:2021-07-27 16:13:19 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/8 9:06:40-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码