
本帖最后由 shitou153 于 2018514 17:24 编辑
我又用pyinstaller库,打包成了pythonimage.exe文件。打包之后发现只有×64系统可以运行。原谅我的无能,才学2周多,我感觉我还行。
下载,运行,出现黑框子,等黑框子消失。然后打开D盘,找pythonimage开头的文件夹。如果喜欢,就多运行几次。保存的文件夹为:D:/pythonimage(n) n=1,12,123,1234,12345,123456……
百度云资源链接:https://pan.baidu.com/s/19zQbPyy9GZPJpmsuYG23A密码:kv40
我不是标题党,我只是多次上传图片失败
引用
这几天刚好学习python,看到吧友发的帖子,立马想到用python爬取一下,算是给python课程交一个小小的作业吧。
用的是requests库。也就是说,不仅要装上python,还要安装requests库才可以运行。
说一下安装requests库吧:win+R>输入“pip install requests”。等待。
小弟不才,想在这里贴上我写的源码:
import requests #引入requests库
import os
url=”https://yantuz.cn/mmPic/” #引用的帖子提供的链接
pat=”D:/pythonimage” #默认保存的地址
b=1
while(os.path.exists(pat) and b<100): #如果默认地址存在,则新创建一个地址
pat+=str(b)
b+=1
os.mkdir(pat)
for i in range(1,100): #默认1——99为照片名称
path=pat+”//”+str(i)+”.jpg”
r=requests.get(url)
if r.status_code!=200:
print(“第”+str(i)+”次返回资源错误”) #如果多次返回资源错误,八成URL不行了
else:
with open(path,’wb’) as f:
f.write(r.content)
f.close()
print(“保存成功”+str(i),end=”)
本来想上传我爬取的图片,可是不晓得怎么回事,我上传之后总显示成功上传0张,于是我放弃了。
写的不好,有兴趣的试试吧。谢谢了。
2楼:好像python不太方便,我会更新为 .exe 文件的。
3楼:源码缩进有问题
4楼:https://yantuz.cn/339.html
5楼:哈哈 不是开发人员不懂这个
6楼:两三点还在写爬虫,幸苦了,作为py交流!
import requests as req # 引入requests库
import os
import traceback
import time
requests = req.session()
url = “https://yantuz.cn/mmPic/” # 引用的帖子提供的链接
se_dir = ‘img’
maxDir = 1
def down_img(url, path):
dir_path = os.path.dirname(path)
if not os.path.exists(dir_path): os.mkdir(dir_path)
try:
img_io = requests.get(url).content
with open(path, ‘wb’) as f:
f.write(img_io)
print(‘下载成功:’, path)
return 0
except:
traceback.print_exc()
print(‘下载失败:’, path)
return 1
def main():
“””
单线程版本
:return:
“””
print(‘单线程启动 抓取’)
for i in range(1, maxDir + 1):
dir = os.path.join(os.getcwd(), ‘%s%d’ % (se_dir, i))
error_num = 0
for i in range(1, 100 + 1):
error_num += down_img(‘%s?t=%s’ % (url, time.time()), os.path.join(dir, ‘%d.jpg’ % i))
if error_num > 100:
print(‘error num:’, error_num)
break
print(‘下载结束’)
from concurrent.futures import ThreadPoolExecutor
def mainThreadPool():
“””
多线程版本,实测 速度差不多,就没必要弄 多线程了
:return:
“””
print(‘多线程启动 抓取’)
with ThreadPoolExecutor(3) as pool:
for i in range(1, maxDir + 1):
dir = os.path.join(os.getcwd(), ‘pool_%s%d’ % (se_dir, i))
for j in range(1, 100 + 1):
pool.map(down_img, )
pool.submit(down_img, ‘%s?t=%s’ % (url, time.time()), os.path.join(dir, ‘%d.jpg’ % j))
print(‘下载结束’)
if __name__ == ‘__main__’:
# main()
mainThreadPool()
复制代码
7楼:标题党,图片呢?
裤子👖都脱了你给我看这个?
8楼:百度云附件:main.rar
简单修改了一下,然后打包成exe
直接下载执行即可
9楼:silver0502 发表于 2018513 07:54
源码缩进有问题
没毛病吧,我直接从IDLE复制过来的。
10楼:yangtutu 发表于 2018513 13:11
百度云附件:main.rar
简单修改了一下,然后打包成exe
老哥,你这下载到那个文件夹我找了半天才找到
