如何用Python下载Getty Images无标识URL的最高分辨率图片
问题:Getty Images高分辨率图片批量爬取(仅用requests+BeautifulSoup)
我是Python及网络爬虫新手,目前爬取Getty Images网站(示例URL:https://www.gettyimages.com/detail/1135439582)时遇到瓶颈:已经用正则表达式拿到了标题、说明、标签等信息,但无法下载最高分辨率的图片,且不能使用Selenium,只能借助BeautifulSoup和requests实现。
页面仅包含一个img标签,点击图片会加载更高分辨率版本,相关高清链接仅存在于source标签中,以下是获取到的source标签内容:
[<source media="(max-width: 1100px)" srcset="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.webp?s=612x612&w=gi&k=20&c=32tqshWj7kB2Hn55L_uiRjde7yg5Sm6wuk3HYnnGJfc=" type="image/webp"/>, <source media="(max-width: 1100px)" srcset="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.jpg?s=612x612&w=gi&k=20&c=32tqshWj7kB2Hn55L_uiRjde7yg5Sm6wuk3HYnnGJfc=" type="image/jpeg"/>, <source media="(max-width: 1530px)" srcset="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.webp?s=1024x1024&w=gi&k=20&c=NuBtfcWoTL0JhTsdWRd9UcCasir1L7ywlVHY2PZqcmM=" type="image/webp"/>, <source media="(max-width: 1530px)" srcset="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.jpg?s=1024x1024&w=gi&k=20&c=NuBtfcWoTL0JhTsdWRd9UcCasir1L7ywlVHY2PZqcmM=" type="image/jpeg"/>, <source srcset="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.webp?s=2048x2048&w=gi&k=20&c=XUK00llqC1n_I1ZD2pjiRUYcqsM5XUZCD_dl7z9ouAc=" type="image/webp"/>, <source srcset="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.jpg?s=2048x2048&w=gi&k=20&c=XUK00llqC1n_I1ZD2pjiRUYcqsM5XUZCD_dl7z9ouAc=" type="image/jpeg"/>]
我通过以下代码获取上述source标签:
img = soup.find_all('source')
而页面中的img标签链接仅为低分辨率版本:
<img alt="Lollapalooza Sao Paulo 2019 - Day 2" class="AssetCard-module__image___dams4" data-testid="image-card-image" src="https://media.gettyimages.com/id/1135439582/pt/foto/vintage-culture-performs-live-onstage-during-the-second-day-of-lollapalooza-brazil-music.jpg?s=1024x1024&w=gi&k=20&c=NuBtfcWoTL0JhTsdWRd9UcCasir1L7ywlVHY2PZqcmM="/>
我清楚source标签的srcset属性包含最高分辨率图片的链接,但直接使用该链接下载得到的仍是低分辨率图片。请问:
- 如何解决这个问题,实现2000+张图片的批量处理?
- 如何传递尺寸参数以获取最高分辨率的图片?(jpg或webp格式均可)
内容的提问来源于stack exchange,提问作者gabz
相关产品推荐
相关产品推荐

