如何用Python算商品销售价格,python计算商品打折总价

  如何用Python算商品销售价格,python计算商品打折总价

  利用python实现自动爬取交易记录、商品信息前言开发流程实现过程数据分析1、API包捕获2、破解请求数据包分析的反向验证3、编写爬虫代码4、反爬取结论及结果展示。

  序

  文章仅用于交流学习。

  刚学爬虫有一段时间了,打算找个网站突破一下,提高一下自己的爬虫和反向能力。刚好最近在用APP购物,所以决定突破一下。整个过程曲折,踩了很多坑,遇到很多意想不到的问题才做出来。该项目分为两个版本。第一个版本由mitmproxy APPium自动操作app完成获取数据。完成后发现爬取过程耗时较长,无法准确抓取指定商品数据,于是放弃,发布了第二个版本。第二版突破了获取商品标志值的加密过程,实现了使用调用API获取商品数据。

  当前功能:

  1.定期抓取商品明细数据。

  2.定期抓取商品交易记录数据。

  3.分析和统计交易记录。

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

  开发流程1,API包捕获

  2.破解请求数据。

  3.写爬虫代码。

  4.防攀爬

  实施流程1。API包捕获。在包捕获之前,我们可以登录采集的网站和APP、小程序三个入口查看数据。我们会发现,只有小程序和app才能获取产品信息,小程序的数据比app少很多。这时候我们就同时抢两个入口。我这里用的抓包工具是查尔斯。

  下载地址:查尔斯下载地址。

  具体安装步骤来自百度,这里就不详细介绍了。

  这里会有两个相对复杂的问题:

  1.配置用于捕获HTTPS的包。

  2.配置包以抓取应用程序。

  这里有一篇推荐文章可以解决这两个问题:推荐文章

  在抓取app和小程序的数据包后,我们会发现APP的请求数据要比小程序复杂很多。基于时间成本和数据需求的考虑,我选择了突破小程序。PS:虽然app端有点复杂,但最后还是想通了。

  2.破解请求数据,分析数据包。根据数据包捕获数据,我们会发现商品明细请求数据是

  用符号添加的结构。

  请求地址是:https://app.dewu.com/api/v1/h5/index/fire/flow/product/detail.

  其中,spuid是商品的唯一值,其他都是默认,仅凭符号值我们无法知道产地。那么这个标志就是我们需要突破的点,否则无法通过调用API获取数据。

  我这里用的思路是反编译小程序,获取里面的加密密钥,然后尝试多种加密方法,最终得到与抓取包得到的sign相同的值。

  我这里用的逆向工具是wxappUnpacker。网上有很多具体教程,我就不一一赘述了。

  反编译脚本下载地址

  在验证请求参数是用逆向得到的密钥构造的之后,最终发现签名是由所有请求参数拼接而成,最后用密钥加密。

  在构造请求参数之后,您可以发送带有从数据包捕获中获得的报头的请求。下面是三个接口的请求头。

  至此,破解请求数据就完成了。

  3.写爬虫代码写代码是一个枯燥的过程。文章最后会给出项目代码的github地址。

  有几个问题需要解决:

  (1)如何通过python发送https请求,绕过ssl认证。

  (2)如何保证每次获取的交易记录都是最后一笔交易记录。

  如何保证每个请求都能成功获取数据?

  (3)如何保证每个请求都能成功获取数据而不被采集服务器截获。

  4.反爬行。我目前了解到的小程序做了两个防爬措施。一个是签名认证,就是刚才说的破解请求数据中的sign。第二是IP限流。

  前一节已经提到了第一个问题。

  第二个问题是我使用的反抓取方法是使用IP代理。Ps:代理商需要自己购买。

  结论和结果表明,以上都是关于利用python实现自动抓取交易记录和商品信息。如果您发现文章有任何疏漏或有疑问,欢迎随时与我交流。电子邮件:2579779624@qq.com

  如文章影响平台利益,请通过以上联系方式联系我。

  Github地址

  贴几张获取的资料图。

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: