# 无基础写python

### 起因

最近看到一个小程序有分享手机和笔记本电脑的报价，就想着通过python下载下来。

### 第一步，小程序抓包

我看论坛很多人说fiddler无法抓了，但是我使用是可以的。

<https://aming.lanzouf.com/iyJPl0x0tazi>

如果你无法使用该方法，可以上网搜一下，一大堆教程

打开抓包后打开小程序，通过抓包获得了三个请求，两个是登录的，一个是下图我点击按钮后返回的post请求

查看返回的JS可以看到返回了image的路径

![image-20230523131956996](https://gitee.com/aminggoodboy/image/raw/master/img/202305231503153.png)

### 第二步，用python复现这个请求

由于本人是一点代码不会，纯小白，但是万幸，这是个AI时代，我直接让GPT帮我生成！

下面是我提问的步骤和思路

* 请帮我根据下方的post请求写一段python代码，把抓到的post直接投喂给GPT
* 如果发生报错，直接复制报错内容到GPT，让他帮你修改
* 一般GPT不会报错的，只要你问的没有问题

  ![image-20230523133343549](https://gitee.com/aminggoodboy/image/raw/master/img/202305231503135.png)

上面图片是我用GPT的一部分展示，第一次运行发生了问题，通过询问GPT发现报错的是SSL证书问题，看了一下是我抓包没关闭导致的，为了演示，我还是让GPT帮我生成了修复这个错误的代码，并且生成完整可运行的代码！

### 第三步，细化python请求，达到下载目的

现在python已经能请求并且返回JS了，但是我要下载对应的图片，还需要让python再细化一下代码！

这里我就不上图了，大概讲一下过程。

1. 首先我自己尝试用post里面的url手动拼接返回js里面的image目录，然后用浏览器直接访问，发现不行，根本无法访问。
2. 本人是真小白，这里纯靠猜测，逐步删除URL后面的内容，再去拼接image的目录，发现并没有效果。
3. 这里我被卡住了很长时间，并不了解这个东西是怎么实现的，只能去尝试，突然有一次想着重新抓包看看，发现在我访问小程序的一瞬间，还出现了一个链接。
4. 通过反复删除url后缀，添加image地址，发现这个才是请求的地址，浏览器成功访问图片。

知道了访问地址就简单了，再次GPT，让他拼接返回的image地址和这个真实访问url就可以了。

1. 再次通过GPT不停的修改代码，反复尝试，如果出现报错，那就问GPT，并让他修复。
2. 这里反复修改后总算能用了，顺便我让他帮我生成了下载到电脑桌面的报价文件夹，如果没有就自动创建。

### 第四步，多文件下载的实现

虽然现在实现了单个报价图片的下载，但是我需要的肯定不是一张图，我需要的是他全部的图片。

1. 通过刚才抓包我发现，在点击小程序内按钮的时候，请求内容里有一个ID，返回的时候也返回了ID这个参数。
2. 所以，我现在只需要把每个按钮点一遍，看看他每个ID是多少，经过点击，我发现他的ID是有规律的，从25一直到64。
3. 直接用 GPT，让他请求并且下载ID25-64中间所有的内容，跳过无效的内容。（又是一阵让GPT修，提问的方式很重要）

   ![image-20230523142818229](https://gitee.com/aminggoodboy/image/raw/master/img/202305231503704.png)

### 最后，生成图形化界面，并打包成exe

这里就已经简单很多了，我直接把代码喂给GPT，让他帮我根据代码，帮我生成一个图形化界面，并且根据下载的进度制作进度条，并添加我的信息。

然后利用打包工具进行打包就好了。

<https://aming.lanzouf.com/ixAkd0x12mkj>

![image-20230523143806155](https://gitee.com/aminggoodboy/image/raw/master/img/202305231503543.png)

![image-20230523143842408](https://gitee.com/aminggoodboy/image/raw/master/img/202305231503166.png)

成品exe链接：<https://aming.lanzouf.com/ibs5V0x12red>
