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

  • 前言
  • 开发流程
  • 实现过程
    • 1、API抓包
    • 2、破解请求数据
      • 分析数据包
      • 逆向
      • 验证
    • 3、编写爬虫代码
    • 4、反爬
  • 结束语与结果展示

前言

文章仅用于交流学习。

刚刚学习爬虫有一段时间,打算找一个网站突破一下,提升一下自己的爬虫与逆向能力。刚好最近买东西都在使用得物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实现自动爬取得物交易记录,商品信息进行数据分析相关推荐

  1. 【python爬虫】爬取淘宝网商品信息

    相信学了python爬虫,很多人都想爬取一些数据量比较大的网站,淘宝网就是一个很好的目标,其数据量大,而且种类繁多,而且难度不是很大,很适合初级学者进行爬取.下面是整个爬取过程: 第一步:构建访问的u ...

  2. python爬虫爬取当当网的商品信息

    python爬虫爬取当当网的商品信息 一.环境搭建 二.简介 三.当当网网页分析 1.分析网页的url规律 2.解析网页html页面 书籍商品html页面解析 其他商品html页面解析 四.代码实现 ...

  3. python使用requests库爬取淘宝指定商品信息

    python使用requests库爬取淘宝指定商品信息 在搜索栏中输入商品 通过F12开发者工具抓包我们知道了商品信息的API,同时发现了商品数据都以json字符串的形式存储在返回的html内 解析u ...

  4. 用Python爬取淘宝网商品信息

    用Python爬取淘宝网商品信息 转载请注明出处 网购时经常会用到淘宝网 点我去淘宝但淘宝网上的商品琳琅满目,于是我参照中国大学 MOOC的代码写了一个爬取淘宝网商品信息的程序 代码如下: impor ...

  5. Scrapy爬取当当网的商品信息存到MySQL数据库

    Scrapy爬取当当网的商品信息存到MySQL数据库 Scrapy 是一款十分强大的爬虫框架,能够快速简单地爬取网页,存到你想要的位置.经过两天的摸索,终于搞定了一个小任务,将当当网的商品信息爬下来存 ...

  6. python-如何爬取天猫店铺的商品信息

    ** python-如何爬取天猫店铺的商品信息 ** 1.本文使用的是python-scrapy 爬取天猫博库图书专营店的数据,登录天猫 获取登录之后的cookie 通过下面两幅图片elements与 ...

  7. 网络爬虫爬取淘宝页面商品信息

    网络爬虫爬取淘宝页面商品信息 最近在MOOC上看嵩老师的网络爬虫课程,按照老师的写法并不能进行爬取,遇到了一个问题,就是关于如何"绕开"淘宝登录界面,正确的爬取相关信息.通过百度找 ...

  8. python 定时自动爬取_python怎么定时爬取数据及将数据以邮件发送

    定时功能,即程序可以根据我们设定的时间自动爬取数据: 通知功能,即程序可以把爬取到的数据结果以邮件的形式自动发送到我们的邮箱. 程序分成三个功能块:[爬虫]+[邮件]+[定时]. 对爬虫部分,主要是获 ...

  9. python +selenium 爬取淘宝网商品信息

    前几天用python爬取豆瓣关于电影<长城>的影评,发现豆瓣的网页是静态的,心中一阵窃喜.以为对于动态网页了解的不是太多.但是主要是用cookie加headers爬取的.效果还不错,爬取了 ...

  10. Python爬虫模拟浏览器的headers、cookie,爬取淘宝网商品信息

    一. 淘宝商品信息定向爬虫 二. 爬虫基础:正则表达式 三. 淘宝页面查看与分析 四. 爬虫源码 一. 淘宝商品信息定向爬虫 注意淘宝的robots.txt不允许任何爬虫爬取,我们只在技术层面探讨这一 ...

最新文章

  1. android多功能计算器 源码,Android计算器源码
  2. springboot使用restTemplate post提交值 restTemplate post值
  3. CDU集训代码:基础算法和数据结构2
  4. 进程线程(java.lang.Thread)详解
  5. java 动态爱心代码_java swing实现动态心形图案的代码下载
  6. 最简单的方法来压缩图片(无需下载工具)
  7. 共赴开源路,共筑新丰碑!2022云栖大会龙蜥操作系统峰会圆满落幕!
  8. java推送微信消息换行_微信公众号开发:回复文本消息换行的三种方式
  9. 亚马逊产品该如何定价?这9种定价策略你一定要了解哦!
  10. Java程序实现Word文档转为pdf以及出现的问题解决
  11. 2023年跨年代码(新年祝福语生成器)
  12. 学习 | 遗传力与田间试验设计
  13. 计算机网络(期末复习5、6章)
  14. Android内核的编译和调试
  15. CCS811气体传感器
  16. Crackme 24
  17. 温度历史数据php,历史天气API接口_免费数据接口 - 极速数据
  18. 在详情页面添加分享按钮
  19. 001:Pell数列
  20. 【PA2015】【BZOJ4297】Rozstaw szyn

热门文章

  1. XCode11中The app delegate must implement the window property if it wants to use 如何解决
  2. 2021临泉一中高考成绩查询,临泉三所省级示范高中高考成绩揭晓!
  3. SketchUp2016如何安装插件
  4. 重磅资源!PyTorch的福音,用PyTorch 1.0进行教学的免费深度学习课程,来自idiap和瑞士洛桑联邦理工学院...
  5. angular- Directive
  6. 项目实战 - tpshop商城项目环境搭建
  7. VMware vCenter Server远程代码执行漏洞复现 CVE-2021-21972
  8. Acwing-4728. 乘方
  9. bam文件读取_检测bam文件的完整度-流程之殇
  10. win10系统设置选择电源键按钮功能设置步骤