[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
经过上次用urllib来下载这次改进用req
RT 小白只会用熟悉的模块来实现功能,
有个问题就是 储存的路劲怎么设置成 程序当前目录下而不是绝对路劲
欢迎大佬点评
另外下载的图片有需要的自取
链接:https://pan.baidu.com/s/1_ZmPW4qHo0YBnyMiE_sGJg
提取码:78t7
|