如何解决如何在 Windows 上使用 BeautifulSoup 创建 Python 脚本以下载 WIkimedia Commons 文件夹中每张图片的最高分辨率?
所以,我是 Gustave Doré 的忠实粉丝,我想从整理整齐的 Wikimedia Commons 文件夹中下载他的所有版画。
因此,给定一个 Wikimedia Commons 文件夹,我需要以最高分辨率下载其中的所有图片。
我开始写一些东西,但我不是那么好,所以它只是一个模板:
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”)
解决方法
嘿,古斯塔夫·多雷 (Gustave Doré) 的忠实粉丝,这里有一种方法可以做到
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)
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。