Python +fidder+mitmdump 抓取手机app零度全部图片
首先打开fidder ,手机连接fidder代理,打开零度app ,查看fidder抓取到的json数据,看到图片包含在
http://app.lingdu2019.cn/api/portrait/goods_detail 这个地址里面,查看json数据写代码,抓取要的内容。这时候关闭fidder。
创建main.py 写入
import json #函数名必须这样写 这是mitmdump规则 def response(flow): #下面这个网址是通过fiddler获取到的 但是有些数据我们无法解密,所以需要用mitmdump捕获数据包然后做分析 if 'http://app.lingdu2019.cn/api/portrait/goods_detail' in flow.request.url: for user in json.loads(flow.response.text)['goods_pic_list']: user_info={} user_info['pic_id'] = user['pic_id'] user_info['img'] = user['img'] #user_info['sort_id'] = user['sort_id'] #user_info['thumb_img'] = user['thumb_img'] print(user_info) js = json.dumps(user_info) fileName = '图片.txt' # 爬取的内容存入文件 f = open(fileName, "a+", encoding='utf-8') # 追加写入文件 f.write(js) f.write('\n') f.close()
这时候 在目录 运行cmd 启动 mitmdump -s main.py这时候连接 mitmdump的代理,打开零度app把零度 每个
分类点进去看下出来,最后就抓取到全部图片地址了。
接下来创建xiazai.py 写入
import json import re import urllib.request import re import os file = open('图片.txt', 'r',encoding='utf-8') i = file.read() #将txt文件的所有内容读入到字符串str中 file.close() #将文件关闭 i= i.split('\n') user=[] user1=[] i.pop() #去掉最后一项 for r in i: r = re.findall(r'[^{} "]', r) r = ''.join(r) r = re.findall('pic_id.*,', r) r = ''.join(r) r = re.findall(r'\d+\.?\d*', r) r = ''.join(r) user1.append(r) for t in i: t = re.findall(r'[^{} "]', t) t = ''.join(t) t = re.findall('/i.*jpg', t) t = ''.join(t) t = 'http://v.xunhua.shop' + t user.append(t) for e in range(len(user)):#取列表长度 name = user1[e] try: data = urllib.request.urlopen(user[e], timeout=10).read() except Exception as e: print(e, '跳过此图片:' + name + '.jpg') t = -1 # img目录不存在自动创建 if not os.path.exists('img'): os.makedirs('img') # 该文件不存在时才下载(存储位置可自行修改,现在存在当前目录的img目录下) if not os.path.exists('img\\' + name + '.jpg'): with open('img\\' + name + '.jpg', 'wb')as f: f.write(data) print(name + '.jpg' + "\t\t下载成功") t = 1 else: print(name + '.jpg' + "\t\t已存在") t = 0 ''' data = urllib.request.urlopen(t, timeout=10).read() if not os.path.exists('img'): os.makedirs('img') # 该文件不存在时才下载(存储位置可自行修改,现在存在当前目录的img目录下) name = r if not os.path.exists('img\\' + name + '.jpg'): with open('img\\' + name + '.jpg', 'wb')as f: f.write(data) print(name + '.jpg' + "\t\t下载成功") t = 1 else: print(name + '.jpg' + "\t\t已存在") t = 0 '''
接下来就看到批量下载零度app里面的图片,需要vip才能看得,也下下来了。
可能有人下载全部没意义,下载自己喜欢的,那就创建fengmian.py
import json #函数名必须这样写 这是mitmdump规则 def response(flow): #下面这个网址是通过fiddler获取到的 但是有些数据我们无法解密,所以需要用mitmdump捕获数据包然后做分析 if 'http://app.lingdu2019.cn/api/portrait/goods_list' in flow.request.url: for user in json.loads(flow.response.text)['goods_list']: user_info={} user_info['sort_id'] = user['sort_id'] user_info['goods_name'] = user['goods_name'] user_info['thumb_img'] = user['thumb_img'] #user_info['sort_id'] = user['sort_id'] #user_info['thumb_img'] = user['thumb_img'] #有的用户修改了抖音号 print(user_info) js = json.dumps(user_info) fileName = '图片封面.txt' # 爬取的内容存入文件 f = open(fileName, "a+", encoding='utf-8') # 追加写入文件 f.write(js) f.write('\n') f.close()
目录 运行cmd 启动 mitmdump -s fengmian.py这时候连接 mitmdump的代理,打开零度app,就看到文件图片封面.txt生成了
在创建fengmian.py
import json import re import urllib.request import re import os file = open('图片封面.txt', 'r',encoding='utf-8') i = file.read() #将txt文件的所有内容读入到字符串str中 file.close() #将文件关闭 i= i.split('\n') user=[] user1=[] i.pop() #去掉最后一项 for r in i: r = re.findall(r'[^{} "]', r) r = ''.join(r) r = re.findall('sort_id.*,', r) r = ''.join(r) r = re.findall(r'\d+\.?\d*', r) r = ''.join(r) user1.append(r) for t in i: t = re.findall(r'[^{} "]', t) t = ''.join(t) t = re.findall('image.*png', t) t = ''.join(t) t = 'http://v.xunhua.shop/' + t user.append(t) for e in range(len(user)):#取列表长度 name = user1[e] try: data = urllib.request.urlopen(user[e], timeout=10).read() except Exception as e: print(e, '跳过此图片:' + name + '.jpg') t = -1 # img目录不存在自动创建 if not os.path.exists('封面'): os.makedirs('封面') # 该文件不存在时才下载(存储位置可自行修改,现在存在当前目录的img目录下) if not os.path.exists('封面\\' + name + '.jpg'): with open('封面\\' + name + '.jpg', 'wb')as f: f.write(data) print(name + '.jpg' + "\t\t下载成功") t = 1 else: print(name + '.jpg' + "\t\t已存在") t = 0 ''' data = urllib.request.urlopen(t, timeout=10).read() if not os.path.exists('img'): os.makedirs('img') # 该文件不存在时才下载(存储位置可自行修改,现在存在当前目录的img目录下) name = r if not os.path.exists('img\\' + name + '.jpg'): with open('img\\' + name + '.jpg', 'wb')as f: f.write(data) print(name + '.jpg' + "\t\t下载成功") t = 1 else: print(name + '.jpg' + "\t\t已存在") t = 0 '''
就会发现所有封面都下载过来了,看到喜欢的,就运行main, 选择自己喜欢的点击,在下载图片看。
如果人生还有重来,那就不叫人生。

浙公网安备 33010602011771号