python爬取手机app图片_Python +fidder+mitmdump 抓取手机app零度全部图片

首先打开fidder ,手机连接fidder代理,打开零度app ,查看fidder抓取到的json数据,看到图片包含在

http://app.lingdu2019.cn/api/portrait/goods_detail 这个地址里面,查看json数据写代码,抓取要的内容。这时候关闭fidder。

创建main.py 写入

importjson#函数名必须这样写 这是mitmdump规则

defresponse(flow):#下面这个网址是通过fiddler获取到的 但是有些数据我们无法解密,所以需要用mitmdump捕获数据包然后做分析

if 'http://app.lingdu2019.cn/api/portrait/goods_detail' inflow.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 写入

importjsonimportreimporturllib.requestimportreimportos

file= open('图片.txt', 'r',encoding='utf-8')

i= file.read() #将txt文件的所有内容读入到字符串str中

file.close() #将文件关闭

i= i.split('\n')

user=[]

user1=[]

i.pop()#去掉最后一项

for r ini:

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 ini:

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()exceptException 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

importjson#函数名必须这样写 这是mitmdump规则

defresponse(flow):#下面这个网址是通过fiddler获取到的 但是有些数据我们无法解密,所以需要用mitmdump捕获数据包然后做分析

if 'http://app.lingdu2019.cn/api/portrait/goods_list' inflow.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

importjsonimportreimporturllib.requestimportreimportos

file= open('图片封面.txt', 'r',encoding='utf-8')

i= file.read() #将txt文件的所有内容读入到字符串str中

file.close() #将文件关闭

i= i.split('\n')

user=[]

user1=[]

i.pop()#去掉最后一项

for r ini:

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 ini:

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()exceptException 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, 选择自己喜欢的点击,在下载图片看。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值