Я хочу сканировать любой веб-сайт и загружать только изображения. Но с помощью следующего кода программа загружает даже картинки, которые присутствуют в теге img. Как я могу выбрать для загрузки только PNG и JPEG?
def fetch_url():
url = _url.get()
config['images'] = []
_images.set(())
try:
page = requests.get(url)
except requests.RequestException as rex:
_sb(str(rex))
else:
soup = BeautifulSoup(page.content, 'html.parser')
images = fetch_images(soup, url)
if images:
_images.set(tuple(img['name'] for img in images))
_sb('Images found: {}'.format(len(images)))
else:
_sb('No images found!.')
config['images'] = images
def fetch_images(soup, base_url):
images = []
for img in soup.findAll('img'):
src = img.get('src')
img_url = ('{base_url}/{src}'.format(base_url=base_url, src=src))
name = img_url.split('/')[-1]
images.append(dict(name=name, url=img_url))
return images