У меня нет проблем загрузить его с urlretrieve
на Linux, но вы должны проверить print(imagen)
, чтобы увидеть, какие имена файлов вы используете.
Он дает имена, такие как
images?q=tbn:ANd9GcQh6rPd9hx_fUGzorshx1fG5kzUM5FGCSYmm2YBuLU3uSFFI5BviIWd6hrHbw&s
с символами, которые могут быть запрещены в вашей системе - поэтому он не может их сохранять - и вам лучше создавать имена файлов вручную - ie. 1.jpg
, 2.jpg
, ..., "{}.jpg".format(i)
- или вам следует удалить недопустимые символы из имени файла.
import requests
from bs4 import BeautifulSoup
import urllib
palabra ='pez'
response = requests.get('https://www.google.com/search?q={}&hl=es&sxsrf=ALeKk00KoMQKffGLNWV5UEKbuPwpySPuig:1596391733831&source=lnms&tbm=isch&sa=X&ved=2ahUKEwiajd7Rjv3qAhXqTN8KHSINBkcQ_AUoAXoECBoQAw&biw=1262&bih=593'.format(palabra))
soup = BeautifulSoup(response.content,'html.parser')
all_images = soup.find_all('img')
for i, img in enumerate(all_images[1:5], 1):
src = img['src']
print 'src:', src
filename = src.split('/')[-1]
print 'filename:', filename
#import urlparse
#parts = urlparse.urlparse(src)
#query = urlparse.parse_qs(parts.query)
#q = query['q'][0]
#filename = q.split(':')[1]
#print 'filename:', filename
filename = '{}.jpg'.format(i)
print 'filename:', filename
urllib.urlretrieve(src, filename)