找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 3645|回复: 9

[求助] 小白求指教

2

主题

6

帖子

6

积分

贫民

积分
6
随便 发表于 2017-6-22 23:46:46 | 显示全部楼层 |阅读模式
为什么我的代码不能下载图片? 屏幕快照 2017-06-22 下午11.44.17.png
import urllib.request
import ssl
import re
import socket,os,sys
targetDir=r'/Users/xib/Pictures'
context=ssl._create_unverified_context()
# ssl._create_default_https_context=ssl._create_unverified_context()
def destFile(path):
    if not os.path.isdir(path):
        os.mkdir(targetDir)
    pos=path.rindex('/')
    t=os.path.join(targetDir,path[pos+1:])
    return t
if __name__=='__main__':
    url="https://www.douban.com"
    webheader1={'User-Anget':'Mozilla/5.0 (Windows NT 6.1; WOW64;rv:23.0) Gecko/20100101 Firefox/23.0'}
    req=urllib.request.Request(url=url,headers=webheader1)
    webpage=urllib.request.urlopen(req,context=context)
    data=webpage.read()
    for link,t in set(re.findall(r'(https:[^\s]*?(jpg|png|gif))',str(data))):
        print(link)
        try:
            urllib.request.urlretrieve(link,destFile(link))
        except:
            print('失败')
回复

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-24 09:16:28 | 显示全部楼层
路径的问题:
1. targetdir写成完整的路径
2. os.makdir(targetdir)之前先判断targetdir这个文件夹是否在,
回复 支持 反对

使用道具 举报

2

主题

6

帖子

6

积分

贫民

积分
6
随便  楼主| 发表于 2017-6-24 21:51:14 | 显示全部楼层
chenmengdan 发表于 2017-6-24 09:16
路径的问题:
1. targetdir写成完整的路径
2. os.makdir(targetdir)之前先判断targetdir这个文件夹是否在, ...

我现在的就是我要保存的路径,Mac的路径不是这么写么?
我有写判断targetdir是否存在啊
回复 支持 反对

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-26 08:54:16 | 显示全部楼层
随便 发表于 2017-6-24 21:51
我现在的就是我要保存的路径,Mac的路径不是这么写么?
我有写判断targetdir是否存在啊 ...

1. 我用的是windows

2. 我写的targetdir是完整路径,例如:targetdir = r'C:\Users\bassqmyd\Desktop\a'

3. 在destFile函数里,
  1. if not os.path.isdir(path):
  2.     if not os.path.isdir(targetdir):
  3.         os.mkdir(targetdir)
复制代码

你的代码没有判断targetdir是否存在吧

4. 我做了这样的修改后,就可以下载图片了,我运行过,是可以的
回复 支持 反对

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-26 08:54:19 | 显示全部楼层
随便 发表于 2017-6-24 21:51
我现在的就是我要保存的路径,Mac的路径不是这么写么?
我有写判断targetdir是否存在啊 ...

1. 我用的是windows

2. 我写的targetdir是完整路径,例如:targetdir = r'C:\Users\bassqmyd\Desktop\a'

3. 在destFile函数里,我改成了:
  1. if not os.path.isdir(path):
  2.     if not os.path.isdir(targetdir):
  3.         os.mkdir(targetdir)
复制代码
你的代码没有判断targetdir是否存在吧,

4. 我做了这样的修改后,就可以下载图片了,我运行过,是可以的
回复 支持 反对

使用道具 举报

2

主题

6

帖子

6

积分

贫民

积分
6
随便  楼主| 发表于 2017-6-26 09:45:01 | 显示全部楼层
chenmengdan 发表于 2017-6-26 08:54
1. 我用的是windows

2. 我写的targetdir是完整路径,例如:targetdir = r'C:\Users\bassqmyd\Desktop\a'

我的是Mac,
我照你的做了修改,还是下载不了~,是因为我的路径写的不对么?
我的python版本是3.6的
回复 支持 反对

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-26 10:19:12 | 显示全部楼层
本帖最后由 chenmengdan 于 2017-6-26 10:21 编辑
随便 发表于 2017-6-26 09:45
我的是Mac,
我照你的做了修改,还是下载不了~,是因为我的路径写的不对么?
我的python版本是 ...

我也是python3
的确在我电脑上成功下载了,

完整路径的斜杠和相对路径的斜杠好像不一样,
要不你就写完整的路径

从地址栏复制,不要自己写,试试
回复 支持 反对

使用道具 举报

2

主题

6

帖子

6

积分

贫民

积分
6
随便  楼主| 发表于 2017-6-26 11:07:37 | 显示全部楼层
chenmengdan 发表于 2017-6-26 10:19
我也是python3
的确在我电脑上成功下载了,

Mac没有像windows的地址栏,我是在控制台敲命令写的,我看网上写绝对地址也是这样写的,但是就是不行
回复 支持 反对

使用道具 举报

30

主题

116

帖子

116

积分

侠客

积分
116
chenmengdan 发表于 2017-6-26 11:20:33 | 显示全部楼层
本帖最后由 chenmengdan 于 2017-6-26 11:21 编辑
随便 发表于 2017-6-26 11:07
Mac没有像windows的地址栏,我是在控制台敲命令写的,我看网上写绝对地址也是这样写的,但是就是不行{:6_ ...

那你调试下,是不是在 os.mkdir(targetDir)这个地方出错

然后你电脑上的/Users/xib这个目录是存在的吗,
回复 支持 反对

使用道具 举报

2

主题

6

帖子

6

积分

贫民

积分
6
随便  楼主| 发表于 2017-6-26 14:16:35 | 显示全部楼层
chenmengdan 发表于 2017-6-26 11:20
那你调试下,是不是在 os.mkdir(targetDir)这个地方出错

然后你电脑上的/Users/xib这个目录是存在的吗,

是存在的
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表