python下载图片怎么保存_小白写的python多线程图片下载,存文件不会用相对路劲...

[Python] 纯文本查看 复制代码# -*- coding: utf-8 -*-

import requests

import time

import os

import threading#多线程模块

def _downimg(page):

header={'User-Agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 '

'(KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36'}

strp = str(page)

site = 'g:\\img\\' + strp + '\\'# 合成路劲

if not os.path.exists(site):#判断一下文件夹是否存在,存在跳过不存在创建

os.makedirs(site)

#下载页面

'''#print(site)

url = "" + strp

r = requests.get(url, headers=header,timeout=30)

#print(r.url)

#print(r.text)

#if r.status_code == 200:

#htm = str(r.text)

with open(site,"w",encoding='utf-8')as f:

f.write(str(r.text))

f.close()'''

#下载图片

p = 1

while p < 21:

name=str(p)

url2 = "https://img.cache010.com/media/videos/tmb/"+ strp +'/'+name+".jpg"

file = "g:\\img\\" + strp + "\\" + name + ".jpg"

try:

if not os.path.exists(file):#判断文件是否存在,存在跳过,不存在就下载

img = requests.get(url2, headers=header,timeout=60,stream=True)#.content

if img.status_code==200:

if len(img)<200:#判断一下图片大小是否合适,太小就是空跳过。

with open (file,'wb')as f:

f.write(img.content)

f.close()

print("已下载"+name+"张图")

p=p+1

else:

print("图片无法显示丢弃")

p=p+1

else:

print("无法访问,跳到下一页")

break

else:

print("文件已存在,再判断一下大小是否符合")

size=os.path.getsize(file)

if size<200:

os.remove(file)

print("删除不匹配的文件")

p=p+1

else:

p=p+1

print("文件正常")

except BaseException:

pass

print("重新下载")

page= page + 1

print("已下载" + strp)

print("下载完成")

#多线程调用downing

page=1

while page<50:

try:

for i in range(10):

thd1=threading.Thread(target=_downimg,args=(page,))

page=page+1

thd1.start()

for i in range(10):

thd1.join()

except BaseException:

pass

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值