使用汤料刮取图像

问题描述 投票:0回答:2

我正试图从这个网站上搜刮一张图片。https:/www.remax.caonrichmond-hill-real-estate-2407--9201-yonge-st-wp_id268950754-lst. 目前的代码是。

url = 'https://www.remax.ca/on/richmond-hill-real-estate/-2407--9201-yonge-st-wp_id268950754-lst'
soup = BeautifulSoup(urlopen(url), 'html.parser')
imgs = soup.findAll('div',  attrs = {'class': 'images is-flex flex-one has-flex-align-center has-flex-content-center'})

当我看到里面的 imgs我找不到 image active ng-star-inserted ng-lazyloadedsrcset. 结果,我无法下载该图片。

谁能建议如何解决这个问题?

web-scraping beautifulsoup lazy-loading
2个回答
1
投票

图片是懒加载的,我想问题就出在这里。所以我废掉了加载和管理这些图片的脚本。

script = soup.find('script', {'type': 'application/ld+json'})
script_json = json.loads(script.contents[0])
imgs = script_json['@graph'][1]['photo']['url']

现在 imgs 包含您提供的该住宅链接中的所有11张图片的列表。


0
投票

你可以使用 urllib 使用这段代码将图片从 url 保存到你的电脑上。

import urllib.request

urllib.request.urlretrieve("https://www.remax.ca/on/richmond-hill-real-estate/-2407--9201-yonge-st-wp_id268950754-lst", "local-filename.jpg")

或者

你可以用这个从google图片中下载多张图片,用这个。多图下载器 - GitHub

© www.soinside.com 2019 - 2024. All rights reserved.