Answer

Answer

t.me/python_tesst

Ответ:

https://demonpress.ecwid.com/Плакат-Чёрным-по-белому-p257233941

https://demonpress.ecwid.com/Плакат-Кто-не-рисует-тот-не-рискует-p220916614

https://demonpress.ecwid.com/Плакат-Няня-я-у-них-поел-p258836846

https://demonpress.ecwid.com/Плакат-Будь-p269091497

https://demonpress.ecwid.com/Плакат-Все-свободны-p386635141

https://demonpress.ecwid.com/Плакат-Пора-что-то-менять-p216140463

https://demonpress.ecwid.com/Плакат-Просто-забей-p225221401

https://demonpress.ecwid.com/Плакат-Птичка-высокого-полета-p106928766

Объяснение:

В этом опусе попробуем рассказать, как создать 45 стикеров для Telegram из постеров, взятых в интернет-магазине. Там продаются различные постеры с забавными надписями, а вот подобных стикеров не существует. Научимся создавать их самостоятельно!

Единственная проблема заключается в том, что генерация нескольких десятков изображений (в данном случае — 45) занимает слишком много времени. Ведь только для создания одного стикера потребуется совершить несколько операций:

  • загрузить картинку с веб-страницы;
  • отделить буквы от фона в фотошопе;
  • сохранить изображение в разрешении, предусмотренном для стикеров в Telegram.

Чтобы сократить время создания стикеров, попробуем автоматизировать процесс.

Анализируйте изображения с веб-сайта, настраивайте цвета и изменяйте размер в соответствии с требованиями Telegram

Кроме всего прочего в папке с сохраненной версией кода появится 45 картинок на момент написания этого поста.

Код:

import requests
from bs4 import BeautifulSoup
import urllib.request

url = 'https://demonpress.ecwid.com/%D0%9F%D0%BB%D0%B0%D0%BA%D0%B0%D1%82%D1%8B-c26701164'
headers = {'User-Agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.95 Safari/537.36'}
text = requests.get(url, headers=headers)
soup = BeautifulSoup(text.content, 'html.parser')
urls = []

# get links to high res pics from the first page
for i in soup.find_all('a', attrs = {"class": "grid-product__image"}):
 urls += [i['href']]

# parse links from other pages
for i in ['15','30','45']:
 url_next = url + '?offset=' + i
 text = requests.get(url_next, headers=headers)
 soup = BeautifulSoup(text.content, 'html.parser')
 for i in soup.find_all('a', attrs = {"class": "grid-product__image"}):
  urls += [i['href']]

# download pics to the cwd
for url in urls:
 text = requests.get(url, headers=headers)
 soup = BeautifulSoup(text.content, 'html.parser')
 if len(soup.find_all('img', {'class':'details-gallery__picture details-gallery__photoswipe-index-0'})) == 0:
  print(url)
 for j in soup.find_all('img', {'class':'details-gallery__picture details-gallery__photoswipe-index-0'}):
  urllib.request.urlretrieve(j['src'], j['title'].replace('/','').replace('*','').replace('?','')+'.jpg')


Report Page