所以,我是古斯塔夫·多雷(Gustave Doré)的忠实粉丝,我想从组织整齐的维基共享资源文件夹中下载他的所有版画。
所以,给定一个维基共享资源文件夹,我需要以最高分辨率下载其中的所有图片。
我开始写一些东西,但我不太好,所以它只是一个模板:
import os, requests, bs4
url = 'URL OF THE WIKIMEDIA COMMONS FOLDER'
os.makedirs('NAME OF THE FOLDER', exist_ok=True)
for n in range(NUMBER OF PICTURES IN THE PAGE - 1):
print('I am downloading page number %s...' %(n+1))
res = requests.get(url)
res.raise_for_status()
soup = bs4.BeautifulSoup(res.text, 'html.parser')
#STUFF I STILL NEED TO ADD
print('Done')
例如,我会将其作为文件夹的 URL:
然后我想点击每个链接并进入图片页面,就像这样:
然后点击图片下方“原始文件”的链接下载“原始文件”。 除了有时图片没有更高的分辨率,就像在这种情况下:
只需点击图片下方的链接即可下载。我完全陷入困境,提前感谢您的帮助!
如果图片保存时具有其页面中注明的名称,则可获得奖励积分
(例如在第二个链接中,图片应保存为“十字军对东方财富的惊讶.jpg”)
r = requests.get('https://commons.wikimedia.org/wiki/Category:Crusades_by_Gustave_Dor%C3%A9')
soup = BeautifulSoup(r.text, 'html.parser')
links = [i.find('img').get('src') for i in soup.find_all('a', class_='image')]
links = ['/'.join(i.split('/')[:-1]).replace('/thumb', '') for i in links]
for l in links:
im = requests.get(l)
with open(l.split('/')[-1], 'wb') as f:
f.write(im.content)