“list”对象在使用时没有属性“strip”错误urllib.urlRetry

2024-06-01 02:04:03 发布

您现在位置:Python中文网/ 问答频道 /正文

你好,我想从下载图片Flickr.com网站使用Python2.7,这是我的代码

from PIL import Image, ImageTk
from urllib import urlopen
from re import findall
from Tkinter import *
import urllib, cStringIO
import random
photo_window=Tk()
photo_window.title('Photo Browser')
import base64
url = '"https://www.flickr.com/photos/flickr/galleries/72157644537473411/"'
regex = '<img src="([^"]+)".*>'
photofile=urllib.urlopen(url)
raw_data=photofile.read()
pattern = re.compile(regex)
download=re.findall(pattern,raw_data)
urllib.urlretrieve(download, "local-filename.gif")

我正在尝试使用findall下载尽可能多的图像 但总是会出现一个错误:

^{pr2}$

这个问题我能得到什么帮助吗?在


Tags: fromimportrecomurldatarawurllib
2条回答

正如@nhahtdh在评论中提到的,您报告的错误消息是因为您的变量“download”是一个列表(是findall())而不是字符串。在

urlretrieve需要一个字符串。在

这是工作代码

# imports
import re # mind this! It won't work with from re import findall 
photo_window=Tk()
photo_window.title('Photo Browser')
import base64
url = "https://www.flickr.com/photos/flickr/galleries/72157644537473411/"
regex = '<img src="([^"]+)".*>'
photofile=urllib.urlopen(url)
raw_data=photofile.read()
pattern = re.compile(regex)
 download=re.findall(pattern,raw_data)
t=0
for x in download:
    urllib.urlretrieve(x, "local-filename-%d.gif" %t )
    t+=1

您需要用''.join(download)作为urlretrieve的第一个参数必须是字符串。url='"smth"'也不正确,你最好做url="smth"。而且,from re import findall不能在代码中使用re.findall(smh),因此需要import re。在

图像将保存到名为local-filename-0.giflocal-filename-1.giflocal-filename-2.gif等文件中

相关问题 更多 >