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')