Скачивание всех изображений без тега sr c с сайта - PullRequest
0 голосов
/ 17 марта 2020

Я удаляю изображения с веб-сайтов. Я нахожу их по sr c, но что если у них нет тега sr c? Как я должен получить их? Прямо сейчас, используя такой код

import requests
from bs4 import BeautifulSoup
from urllib.parse import urlparse
import os

def url_to_page_name(url):
    parsed = urlparse(str(url))
    return parsed.netloc

def get_images_job(page_url):
    """Request given page and extract images"""
    directory_name = url_to_page_name(page_url)
    response = requests.get(page_url)
    soup = BeautifulSoup(response.text, 'html.parser')
    img_tags = soup.find_all('img')

    urls = [img['src'] for img in img_tags]

    if not os.path.exists(directory_name):
        os.makedirs(directory_name)

    for url in urls:
        file_name = re.search(r'/([\w_-]+[.](jpg|jpeg|gif|png|bmp|webp|svg))$', url)

        if file_name:
            file_name = file_name.group(1)

            with open(os.path.join(f'{directory_name}/' + file_name), 'wb') as f:
                if 'http' not in url:
                    # sometimes an image source can be relative
                    # if it is provide the base url which also happens
                    # to be the site variable atm.
                    url = '{}{}'.format(page_url, url)
                response = requests.get(url)
                f.write(response.content)

get_images_job("https://pixabay.com/")

А что если?

  • они используются в качестве фона
background="img/tile.jpg"
  • Они могут быть находится внутри CSS
  • Они могут быть маскированы как base64
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...