Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - python вопрос по работе скрипта

Ответить
Настройки темы
Разное - python вопрос по работе скрипта

Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Изменения
Автор: dark-------13
Дата: 25-03-2019
Добрый день есть такой парсер сайта, который должен скачивать изображения с страниц галереи.
Изначально был написан его разработчиком на python 2.75.
Сейчас пытаюсь адаптировать скрипт под python 3.7.2
Не могу понять почему не может найти имя пользователя в адресе.
Сам не программист, адаптирую скрипт для себя.... Помогите пожалуйста
Немного поправил код , теперь выдается другая ошибка:

скрипт

Код: Выделить весь код
from __future__ import print_function
from urllib.request import urlopen, urlretrieve
import mechanize
import pickle
import random
import sys
import re
import os


PAGES = []
ARTIST = ""
IMG_BUFF = []
TITLES = []
LOGGED_IN = False


class Page:
    def __init__(self, link=None, search=False):
        global TITLES
        if (search):
            phrase = ""
            while (phrase != '~q'):
                phrase = input("Search ~q to quit: ")
                try:
                    source = "http://" + ARTIST + ".deviantart.com/gallery/?catpath=%2F&q=" + \
                             '+'.join(phrase.split())
                    print("Searching for:", source)
                    gallery = open_page(source)
                    if (re.findall("no deviations yet\!", gallery)):
                        print("No Results")
                        continue
                    print("Results Found")
                    break
                except:
                    print("Bad phrase")
                    continue
        else:
            self.__index = int(int(link[link.find('?offset=') + 8:]) / 24) + 1
            gallery = open_page(link)
        self.__images = []
        blocks = get_blocks(gallery)
        for block in blocks:
            title = re.findall('title="(.*?) by ' + ARTIST, block)[0]
            self.__title = title
            TITLES.append(self.__title)
            self.__images.append(Image(self, self.__title, block))

    def get_images(self):
        return self.__images

    def get_index(self):
        return self.__index


class Image:
    def __init__(self, page, title, block):
        self.__artist = ARTIST
        self.__page = page
        self.__title = title
        self.__date = re.findall(ARTIST + ', (.*?) in', block)[0]
        self.__mature = False
        self.__gif = False
        found = re.findall('data-super-(?:full-)?img="(.*?)"', block) + \
                [re.findall('src="(.*?)"', block)[0]]
        if (len(found) == 3):
            self.__quality = 3
            self.__link = found[1]
        elif (len(found) == 2):
            self.__quality = 2
            self.__link = found[0]
        elif (len(found) == 1):
            self.__quality = 1
            if ('gif' in found[0]):
                self.__gif = True
        if (re.findall('ismature', block)):
            self.__mature = True
        self.__link = found[0]
        self.__ext = self.__link[len(self.__link) - 4:]

    def dl_image(self):
        if (self.__gif) or (self.__mature):
            status = '      ! '
        else:
            status = '\t'
        status += str(self.__quality) + " [.] "
        status += self.__title
        print(status, end='\r')
        mod = 1
        while (self.__title + str(mod) + self.__ext in os.listdir('.')):
            mod += 1
        urlretrieve(self.__link, self.__title.replace('/', '') + str(mod) + self.__ext)
        print(status.replace('.', '+'))

    def get_title(self):
        return self.__title

    def is_mat(self):
        return self.__mature


class NoHistory(object):
    def add(self, *a, **k):
        pass

    def clear(self):
        pass


def daSetBrowser():
    useragents = (
        'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1',
        'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:7.0.1) Gecko/20100101',
        'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_6_8) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50',
        'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)',
        'Opera/9.99 (Windows NT 5.1; U; pl) Presto/9.9.9',
        'Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_5_6; en-US) AppleWebKit/530.5 (KHTML, like Gecko) Chrome/ Safari/530.5',
        'Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US) AppleWebKit/533.2 (KHTML, like Gecko) Chrome/6.0',
        'Mozilla/5.0 (Windows; U; Windows NT 6.1; pl; rv:1.9.1) Gecko/20090624 Firefox/3.5 (.NET CLR 3.5.30729)'
    )
    global BROWSER
    BROWSER = mechanize.Browser(history=NoHistory())
    BROWSER.set_handle_redirect(True)
    BROWSER.set_handle_robots(False)
    BROWSER.addheaders = [('Referer', 'http://www.deviantart.com/')]
    BROWSER.addheaders = [('User-Agent', random.choice(useragents))]


def daLogin(username, password):
    data = ""
    try:
        BROWSER.open('https://www.deviantart.com/users/login', "ref=http%3A%2F%2Fwww.deviantart.com%2F&remember_me=1")
        BROWSER.select_form(nr=1)
        BROWSER.form['username'] = username
        BROWSER.form['password'] = password
        BROWSER.submit()
        data = BROWSER.response().read()
    except urllib.error.HTTPError as e:
        print("HTTP Error:", e.code)
        sys.exit()
    except urllib.error.URLError as e:
        print("URL Error:", e.reason)
        sys.exit()
    if re.search("The password you entered was incorrect", data):
        print("Wrong password or username. Attempting to download anyway.")
    elif re.search("\"loggedIn\":true", data):
        print("Logged in!")
        global LOGGED_IN
        LOGGED_IN = True
    else:
        print("Login unsuccessful. Attempting to download anyway.")


def startup():
    print("\ngetdeviantart 1.0")
    while True:
        artist = input("Enter artist: ").lower()
        try:
            source = "http://" + artist + ".deviantart.com/gallery/?offset=0"
            gallery = open_page(source)
            artist = re.findall('<title>(.*?)&#', gallery)[0]
            print("Found", artist)
            if (re.findall("no deviations yet\!", gallery)):
                print(artist, "has no art.")
                continue
            try:
                os.mkdir(artist)
            except:
                pass
            os.chdir(artist)
            gallery = open_page(source)
            break
        except:
            print("User not found, try again.")
            continue
    global ARTIST
    ARTIST = artist
    return gallery, source


def count_pages(text, source):
    found = re.findall('(\d+)</a></li><li class="next"', text)[0]
    pages = []
    for i in range(0, int(found) * 24, 24):
        pages.append(source[:-1] + str(i))
    return pages


def menu():
    print("\n1) Download all pages\
           \n2) Select pages\
           \n3) Select images page by page\
           \n4) Search for image\
           \n5) Choose different artist\
           \n6) Quit")
    choice = 0
    while (choice < 1) or (choice > 6):
        try:
            choice = int(input("Choice> "))
        except ValueError:
            continue
    return choice


def execute(choice, all_pages, source):
    global PAGES
    global ARTIST
    global IMG_BUFF
    global TITLES

    if (choice == 1):
        download(range(1, len(all_pages) + 1), source)

    elif (choice == 2):
        sel_pages = input_vals(pg=True, last=len(all_pages))
        download(sel_pages, source)

    elif (choice == 3):
        sel_pages = input_vals(pg=True, last=len(all_pages))
        download(sel_pages, source, sel_imgs=True)

    elif (choice == 4):
        search()

    elif (choice == 5):
        PAGES = []
        ARTIST = ""
        IMG_BUFF = []
        TITLES = []


def download(pages, source, sel_imgs=False):
    global PAGES
    page_nums = pages
    source = source[:-1]
    page_links = []
    for var in page_nums:
        page_links.append(source + str((int(var) - 1) * 24))

    for link in page_links:
        PAGES.append(Page(link))
        page = PAGES[-1]
        print("\nPage #", page.get_index())
        buff_down(page, sel_imgs)


def buff_down(page, sel_imgs):
    global IMG_BUFF
    index = 1
    for image in page.get_images():
        if (sel_imgs):
            if (image.is_mat()):
                s = '      ! '
            else:
                s = '\t'
            print(s + str(index) + ')', image.get_title())
            IMG_BUFF.append(image)
            index += 1
        else:
            image.dl_image()
    if (sel_imgs):
        for img in input_vals(img=True, last=len(IMG_BUFF)):
            IMG_BUFF[int(img) - 1].dl_image()
    IMG_BUFF = []


def search():
    page = Page(search=True)
    buff_down(page, True)


def input_vals(pg=False, img=False, last=0):
    output = []
    while True:
        try:
            if (pg):
                in_vals = input("Pages to get/search (1-3,5,6-8 etc): ")
                in_vals = in_vals.replace(' ', '').split(',')
            elif (img):
                in_vals = input("Images to download (1-3,5,6-8 etc): ")
                in_vals = in_vals.replace(' ', '').split(',')
            for val in in_vals:
                if (val.isdigit()):
                    output.append(int(val))
                elif ('-' in val):
                    if not ((val.replace('-', '').isdigit())):
                        raise ValueError
                    else:
                        left = int(val[:val.find('-')])
                        right = int(val[val.find('-') + 1:]) + 1
                        if (left > right):
                            raise ValueError
                        else:
                            output += [int(var) for var in range(left, right)]
                elif (int(val) <= 0):
                    raise ValueError
                else:
                    raise ValueError

            output = [int(a) for a in output]
            if (max(output) > last):
                raise ValueError
            if (output.sort()) != None:
                output = output.sort()
            output = [str(a) for a in output]
            return output

        except ValueError:
            print("Bad format, Try again.")
            output = []
            continue


def get_blocks(text):
    return [re.findall('</smoothie>.*</div>', text)[0]] \
           + re.findall('</span></small><!-- TTT\$ --></span></div> <div.*', text)


def open_page(url):
    if (LOGGED_IN):
        return BROWSER.open(url).read()
    else:
        return urlopen(url).read().decode("utf-8")


def get_account():
    fil = '.DeVaCtinfo.p'
    choice = ''
    while (choice != 'y') and (choice != 'n'):
        choice = input("Log in? (y/n): ").lower()
    if (choice == 'n'):
        return [None, None, 0]
    choice = ''
    while (choice != 'y') and (choice != 'n'):
        choice = input("New Account? (y/n): ").lower()
    if (choice == 'y'):
        print("Use throwaway account..")
        uname = input("Enter account username: ")
        passwd = input("Enter account password: ")
        pickle.dump('\n'.join([uname, passwd]), open(fil, 'wb'))
        return [uname, passwd, 0]
    else:
        try:
            uname, passwd = pickle.load(open(fil, 'rb')).split()
            return [uname, passwd, 0]
        except:
            print("Bad account info or no user on file.")
            return [None, None, 1]


def main():
    global PAGES
    global IMG_BUFF
    global TITLES
    choice = 5
    acl = [None, None, 1]
    while (acl[2] != 0):
        acl = get_account()
    if (acl[0] and acl[1]):
        daSetBrowser()
        daLogin(acl[0], acl[1])
    while (choice != 6):
        if (choice == 5):
            gallery, source = startup()
            all_pages = count_pages(gallery, source)
            print(ARTIST, "has", len(all_pages), "pages of art.")
        choice = menu()
        if (choice == 6):
            break
        else:
            execute(choice, all_pages, source)
            PAGES = []
            IMG_BUFF = []
            TITLES = []
    print("Quitting..")


main()

Отправлено: 11:45, 25-03-2019

 

Новый участник


Сообщения: 35
Благодарности: 6

Профиль | Отправить PM | Цитировать


Код: Выделить весь код
name = 'чтототут'
a = name.split('.')
b = name.split('-')
ошибку не вызовет хоть в name нет ни точки ни тире

Отправлено: 19:40, 29-03-2019 | #21



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Ветеран


Сообщения: 27449
Благодарности: 8086

Профиль | Отправить PM | Цитировать


Цитата Bumbik:
ошибку не вызовет хоть в name нет ни точки ни тире »
Естественно. А вот попытка обратиться к несуществующему второму элементу возвращённого list вызовет ошибку. И надо смотреть, почему там нет того или другого.

Отправлено: 22:29, 29-03-2019 | #22


Новый участник


Сообщения: 35
Благодарности: 6

Профиль | Отправить PM | Цитировать


Цитата Iska:
Естественно. А вот попытка обратиться к несуществующему второму элементу возвращённого list вызовет ошибку. И надо смотреть, почему там нет того или другого. »
Так я о чем, нет индекса 1 отчего и ошибка
Код: Выделить весь код
name = 'ляляля-труляля.ляля'
p2 = name.split('-')[1].split('.')[1]
тут не будет ошибки
Код: Выделить весь код
name = 'лял.яля-труляляляля'
p2 = name.split('-')[1].split('.')[1]
а тут будет

Отправлено: 22:40, 29-03-2019 | #23


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Протестировал скрипт , выдается строка с ошибкой при обработке картинок названием в ссылке - представленном в виде:


Код: Выделить весь код
dc3wr2h-3eb6c8a7-07bd-4403-8766-c095f7ecab80.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7InBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGMzd3IyaC0zZWI2YzhhNy0wN2JkLTQ0MDMtODc2Ni1jMDk1ZjdlY2FiODAuanBnIn1dXSwiYXVkIjpbInVybjpzZXJ2aWNlOmZpbGUuZG93bmxvYWQiXX0.FvO7BxBgLnat6ae2GRiyhIqJ_dlFDPViQ03T9MNWHtc list index out of range

Отправлено: 22:13, 30-03-2019 | #24


Новый участник


Сообщения: 35
Благодарности: 6

Профиль | Отправить PM | Цитировать


Ну во-первых твоя функция начинается с:
Код: Выделить весь код
if url.find('/'):
Это вернет -1 если не найдет символ '/' в url и так или иначе это будет True, значит зайдет в этот блок, лучше делать так:
Код: Выделить весь код
if '/' in url:
Потом вот это лучше помести в самый верх:
Код: Выделить весь код
if title:
        return title + '.png'
Помойму тут нужна другая логика, а чего ошибка это очевидно

Отправлено: 08:20, 31-03-2019 | #25


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


после внесения изменений в скрипт , он возвращает с ошибкой строки следующего вида:

Код: Выделить весь код
rainbow_mermaid_vii_by_megancoffey_dd30wvy-fullview.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd2eS0zYjc0Y2E0NS0wOGViLTQ1YjUtODcxZi1iZmRiNzVhYzk5ZmUuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.0oDEZ7NFFBRJn9Rf7Z6BtPv7q2gSi9exP3B7MHu-Qlk

и такую если print(name) находится после while



Код: Выделить весь код
ratalanta___gardens_xix_by_megancoffey_dd1w4av.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9

Последний раз редактировалось dark-------13, 31-03-2019 в 09:50.


Отправлено: 09:39, 31-03-2019 | #26


Новый участник


Сообщения: 35
Благодарности: 6

Профиль | Отправить PM | Цитировать


Не совсем понимаю что ты хочешь с урлом сделать в этой функции, да и важно так же что за ошибка, скорей всего тут опять indexerror

Если тебе нужно распарсить ссылку, тогда вместо чем изобретать велосипед с хождение по граблям посоветую взглянуть на встроенный в питон модуль urllib.parse, может это то что тебе нужно

Отправлено: 10:38, 31-03-2019 | #27


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Хм на примера JAVA советуют сделать так:

Код: Выделить весь код
String num = s.next();
String[] parts = num.split("\\.");
http://qaru.site/questions/11438648/...-out-of-bounds

Последний раз редактировалось dark-------13, 31-03-2019 в 12:48. Причина: http://qaru.site/questions/11438648/string-split-gives-array-out-of-bounds


Отправлено: 12:41, 31-03-2019 | #28


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Привет, хотел кое-что проверить, написал скрипт, а он данные из файла не читает и не выводит на экран. Подскажите пожалуйста в чем проблема.

скрипт

Код: Выделить весь код
def readdd(a):
 text = open(r'L:\test\links.txt','r')
 d= text.read()
 print(d)
 text.close()




И еще вопрос как заставить python обрабатывать написанный код без использования функций ? Убираю def ругается.



еще пробовал такой вариант:
второй вариант:
Код: Выделить весь код
def readdd(a):

 #text = open(r'L:\test\links.txt','r')

 text = open('l:\\test\\links.txt','r', encoding='utf-8')  # Windows
 mytxt = text.readline()
 for line in mytxt:
  print(line)
 mytxt.close()


Так , похоже дело было в отступах. Зато теперь пишет ошибку после вывода содержимого документа.

выполняется скрипт:
---
Код: Выделить весь код
text = open('l:/test/links.txt','r')  # Windows
mytxt = text.read()
print(mytxt)
mytxt.close()


И вот такая ошибка:
ошибка:

Код: Выделить весь код
Traceback (most recent call last):
  File "C:/python_parser_4/venv/Scripts/test_0004.py", line 38, in <module>
    mytxt.close()
AttributeError: 'str' object has no attribute 'close'

Последний раз редактировалось dark-------13, 05-04-2019 в 10:51.


Отправлено: 09:38, 05-04-2019 | #29


Старожил


Сообщения: 169
Благодарности: 4

Профиль | Отправить PM | Цитировать


Пытаюсь считать сохраненный в текcтовом файле код html - в переменную, и применить к коду bs4 чтобы выбрать ссылки между тегами.

Скрипт вот такой:
---


Код: Выделить весь код

s = requests.Session()
text = open('l:/test/links.txt','r')
mytxt = text.read()

#link = soup.find('a', class_='torpedo-thumb-link')['src']
#soup.find_all('a', {'torpedo-thumb-link' : re.compile('^c') }):
soup = bs4.BeautifulSoup(mytxt)
for links in soup.find('a', class_='torpedo-thumb-link')['src']:
    print (''.join(links.find(text=True)))


mytxt.close()



Ничего не получается


Изменил скрипт выше на следующий:

---- 2


Код: Выделить весь код
with open('l:/test/links.txt') as f:
    lines = f.read()
soup = bs4.BeautifulSoup(lines)
#soup = bs4.BeautifulSoup(mytxt)
for links in soup.find_all('a', {'class': 'torpedo-thumb-link'}):
    print (links)



выдает ошибку и выводит на экран найденное:

Почему ругается не понятно, если знаете подскажите пожалуйста.

----


Код: Выделить весь код
"C:\Program Files (x86)\Python37-32\python.exe" C:/python_parser_4/venv/Scripts/test_0004.py
C:/python_parser_4/venv/Scripts/test_0004.py:46: UserWarning: No parser was explicitly specified, so I'm using the best available HTML parser for this system ("lxml"). This usually isn't a problem, but if you run this code on another system, or in a different virtual environment, it may use a different parser and behave differently.

The code that caused this warning is on line 46 of the file C:/python_parser_4/venv/Scripts/test_0004.py. To get rid of this warning, pass the additional argument 'features="lxml"' to the BeautifulSoup constructor.

  soup = bs4.BeautifulSoup(lines)
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rooftop-Samus-V-787971691"><img alt="Rooftop Samus V by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd14yuj-aa8bdcee-2168-46b2-bac2-0f07c6868967.jpg/v1/fill/w_167,h_250,q_70,strp/rooftop_samus_v_by_megancoffey_dd14yuj-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQxNHl1ai1hYThiZGNlZS0yMTY4LTQ2YjItYmFjMi0wZjA3YzY4Njg5NjcuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.AjDOsD5n0tHPMICD133jMA1zpdeFN8mWRjms1pPVuYY"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rooftop-Samus-IV-787971667"><img alt="Rooftop Samus IV by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd14ytv-b805b13f-005c-4466-8946-1b09c2abb725.jpg/v1/fill/w_167,h_250,q_70,strp/rooftop_samus_iv_by_megancoffey_dd14ytv-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQxNHl0di1iODA1YjEzZi0wMDVjLTQ0NjYtODk0Ni0xYjA5YzJhYmI3MjUuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.QEnfbHeiyXlQYIiihhYy-ior7QbA0_kcv-8L5_m4L98"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rooftop-Samus-III-787971655"><img alt="Rooftop Samus III by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd14ytj-f73b69b7-2dba-469d-a9df-74e2f3ca9b8a.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.045269720791542,q_70,strp/rooftop_samus_iii_by_megancoffey_dd14ytj-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMSIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQxNHl0ai1mNzNiNjliNy0yZGJhLTQ2OWQtYTlkZi03NGUyZjNjYTliOGEuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.hvtwc3X6IDgNGgxY4Xt8YDGaaWOXX6EpRp7XyxEBIz8"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rooftop-Samus-II-787971579"><img alt="Rooftop Samus II by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd14yrf-3ae13dae-cdb6-43cc-993d-63308351e0bf.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.042602040816327,q_70,strp/rooftop_samus_ii_by_megancoffey_dd14yrf-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQxNHlyZi0zYWUxM2RhZS1jZGI2LTQzY2MtOTkzZC02MzMwODM1MWUwYmYuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.rhsBYnEVcfPJfDhhbCWFLbgKaqZwy8ZSHX99DS3qUjs"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rooftop-Samus-784515165"><img alt="Rooftop Samus by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dcz2vrx-57d7ace1-3896-448a-96fa-034c1a4ca6ed.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.044868350349275,q_70,strp/rooftop_samus_by_megancoffey_dcz2vrx-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGN6MnZyeC01N2Q3YWNlMS0zODk2LTQ0OGEtOTZmYS0wMzRjMWE0Y2E2ZWQuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ._MEeGr79Hh6j3x3dFCHWZd2egxH8od4KUHj5L8SGOao"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-XIV-791141789"><img alt="Rainbow Mermaid XIV by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wwt-26854c01-a144-4e40-becd-b19db322cca2.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/rainbow_mermaid_xiv_by_megancoffey_dd30wwt-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd3dC0yNjg1NGMwMS1hMTQ0LTRlNDAtYmVjZC1iMTlkYjMyMmNjYTIuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.YZl1Bn2_P0OFdUKeOwUXr-3hNsLbrEjoCA1LAoMG4gI"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-XIII-791141661"><img alt="Rainbow Mermaid XIII by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wt9-ef10d2fd-b5ce-424c-af1e-d77c8fec60fb.jpg/v1/fill/w_401,h_250,q_70,strp/rainbow_mermaid_xiii_by_megancoffey_dd30wt9-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9Nzk4IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd3Q5LWVmMTBkMmZkLWI1Y2UtNDI0Yy1hZjFlLWQ3N2M4ZmVjNjBmYi5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.sxyUru2-vf-5EpBFH9nKLAgbClIi0Whg4Fzw5WNrfyM"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-XII-791141698"><img alt="Rainbow Mermaid XII by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wua-bf1b6d7b-38fd-4c6d-b785-65d8c630c909.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/rainbow_mermaid_xii_by_megancoffey_dd30wua-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd1YS1iZjFiNmQ3Yi0zOGZkLTRjNmQtYjc4NS02NWQ4YzYzMGM5MDkuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.MCium9kcmTZLxETUbP69lvwInTiw-5Mk9Wff__5FJSY"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-XI-791141894"><img alt="Rainbow Mermaid XI by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wzq-0b0a1984-745c-41d5-8a6f-57df16803a27.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/rainbow_mermaid_xi_by_megancoffey_dd30wzq-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd6cS0wYjBhMTk4NC03NDVjLTQxZDUtOGE2Zi01N2RmMTY4MDNhMjcuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.gDPFdIkJ_tiarHzzRQSMFfZxmsYfiDrLvoAVOqPq4Xg"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-X-791141821"><img alt="Rainbow Mermaid X by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wxp-218415a3-8e36-4014-8f04-a5840c920fa4.jpg/v1/fill/w_177,h_250,q_70,strp/rainbow_mermaid_x_by_megancoffey_dd30wxp-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTgxMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd4cC0yMTg0MTVhMy04ZTM2LTQwMTQtOGYwNC1hNTg0MGM5MjBmYTQuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.R0nxMJWfRA7benALfvPReJLBNzRVAeSDNqyAajXjdL4"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-IX-791141743"><img alt="Rainbow Mermaid IX by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wvj-65e8ce01-763d-4578-b6db-a7b23f4ac83c.jpg/v1/fill/w_375,h_250,q_70,strp/rainbow_mermaid_ix_by_megancoffey_dd30wvj-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd3ZqLTY1ZThjZTAxLTc2M2QtNDU3OC1iNmRiLWE3YjIzZjRhYzgzYy5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.qnMuUboV1tOfLmU2o9XXNEWzPtwUdAf4RxEasczHQxA"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-VIII-791141886"><img alt="Rainbow Mermaid VIII by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wzi-35e88476-6855-43b8-b594-063e5eb2cc7e.jpg/v1/crop/w_190,h_250,x_0,y_0,scl_0.050788559208768,q_70,strp/rainbow_mermaid_viii_by_megancoffey_dd30wzi-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTY4OSIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd6aS0zNWU4ODQ3Ni02ODU1LTQzYjgtYjU5NC0wNjNlNWViMmNjN2UuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.h1gKTdedeEwfzPIhBFE8Y7OsB_Nf_q2udoHxMQcnXr4"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-VII-791141758"><img alt="Rainbow Mermaid VII by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wvy-3b74ca45-08eb-45b5-871f-bfdb75ac99fe.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/rainbow_mermaid_vii_by_megancoffey_dd30wvy-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd2eS0zYjc0Y2E0NS0wOGViLTQ1YjUtODcxZi1iZmRiNzVhYzk5ZmUuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.0oDEZ7NFFBRJn9Rf7Z6BtPv7q2gSi9exP3B7MHu-Qlk"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-VI-791141723"><img alt="Rainbow Mermaid VI by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wuz-d1293fed-1ad8-4688-954b-09800972596f.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/rainbow_mermaid_vi_by_megancoffey_dd30wuz-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd1ei1kMTI5M2ZlZC0xYWQ4LTQ2ODgtOTU0Yi0wOTgwMDk3MjU5NmYuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.e7lfJQwhmz3wWsrPclKXkwCMr-cK747SGDEkyg_YC_s"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-V-791141509"><img alt="Rainbow Mermaid V by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wp1-b6738e7d-5720-4edb-9704-05452f7d2a66.jpg/v1/fill/w_375,h_250,q_70,strp/rainbow_mermaid_v_by_megancoffey_dd30wp1-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd3AxLWI2NzM4ZTdkLTU3MjAtNGVkYi05NzA0LTA1NDUyZjdkMmE2Ni5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.kC72loTnynMXXuhrIUkAsqUO6Qxf_jGK6SKtg9RArMY"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-IV-791141885"><img alt="Rainbow Mermaid IV by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wzh-648196b6-383a-4467-a632-bd01679da373.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.046687168017892,q_70,strp/rainbow_mermaid_iv_by_megancoffey_dd30wzh-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMSIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd6aC02NDgxOTZiNi0zODNhLTQ0NjctYTYzMi1iZDAxNjc5ZGEzNzMuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.ZKb2LBlsVbgC5P94Js4jWrpNrck8BihKwNfsMukNFYM"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-III-791141811"><img alt="Rainbow Mermaid III by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wxf-1e3849a2-7522-471c-81dc-49812a6a874c.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/rainbow_mermaid_iii_by_megancoffey_dd30wxf-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHd4Zi0xZTM4NDlhMi03NTIyLTQ3MWMtODFkYy00OTgxMmE2YTg3NGMuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.1zzNUQDxf06XZQdKr3uAnzp4eeY92SQLEdbdRiUMrlM"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-II-791141860"><img alt="Rainbow Mermaid II by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wys-45f386e3-f6e4-4405-b894-73afae214565.jpg/v1/fill/w_375,h_250,q_70,strp/rainbow_mermaid_ii_by_megancoffey_dd30wys-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd3lzLTQ1ZjM4NmUzLWY2ZTQtNDQwNS1iODk0LTczYWZhZTIxNDU2NS5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.3GbIK1GRcmbK38SlIDMj1__ofMpVtBGRvbpt3MeKAFc"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Rainbow-Mermaid-791141901"><img alt="Rainbow Mermaid by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wzx-60db43ba-b314-4b95-8ee1-8787e938c0d7.jpg/v1/fill/w_375,h_250,q_70,strp/rainbow_mermaid_by_megancoffey_dd30wzx-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd3p4LTYwZGI0M2JhLWIzMTQtNGI5NS04ZWUxLTg3ODdlOTM4YzBkNy5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.OV2nJlrUw9ydyEYqf3So_oMfXFHg9wc1X0z4QRdoYPg"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Saint-Martha-791387010"><img alt="Saint Martha by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd3664i-e9975385-90cf-488f-b59b-f37a2ce5443a.jpg/v1/fill/w_375,h_250,q_70,strp/saint_martha_by_megancoffey_dd3664i-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDM2NjRpLWU5OTc1Mzg1LTkwY2YtNDg4Zi1iNTliLWYzN2EyY2U1NDQzYS5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.eKHSLuZzOo_GfkxIGXG_dkhyMA2zlOsy633hqoTRGNU"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Freshwater-Mermaid-XII-791141495"><img alt="Freshwater Mermaid XII by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30won-1f3a9ea7-0459-4c79-9f2d-ee608a06ebe1.jpg/v1/fill/w_375,h_250,q_70,strp/freshwater_mermaid_xii_by_megancoffey_dd30won-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd29uLTFmM2E5ZWE3LTA0NTktNGM3OS05ZjJkLWVlNjA4YTA2ZWJlMS5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.OCz3tqxMtt5bk_eJwXNcFSdvhXlP6bqw1UT2Is2VTTw"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Freshwater-Mermaid-XI-791141483"><img alt="Freshwater Mermaid XI by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wob-e8e5a5ba-f2b8-47ae-92fd-f6dbc94dfc67.jpg/v1/crop/w_167,h_250,x_0,y_0,scl_0.04175,q_70,strp/freshwater_mermaid_xi_by_megancoffey_dd30wob-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTkyMCIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHdvYi1lOGU1YTViYS1mMmI4LTQ3YWUtOTJmZC1mNmRiYzk0ZGZjNjcuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.HIsFhyCktLv7oEh8nuIOupn2h8vpIBPVxqCeKekR3RE"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Freshwater-Mermaid-X-791141477"><img alt="Freshwater Mermaid X by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wo5-31a51213-6a7b-424f-89ad-cf4484a1f464.jpg/v1/fill/w_375,h_250,q_70,strp/freshwater_mermaid_x_by_megancoffey_dd30wo5-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9ODU0IiwicGF0aCI6IlwvZlwvMmU1YjRkNzItZmM0ZC00ZDBmLTk0MDEtYTQ0MGQ5OGY5Njk1XC9kZDMwd281LTMxYTUxMjEzLTZhN2ItNDI0Zi04OWFkLWNmNDQ4NGExZjQ2NC5qcGciLCJ3aWR0aCI6Ijw9MTI4MCJ9XV0sImF1ZCI6WyJ1cm46c2VydmljZTppbWFnZS5vcGVyYXRpb25zIl19.dQB3yr28uyuhtSbc3br3NpD_PHPkH-prbmVKWaeDkgI"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>
<a class="torpedo-thumb-link" href="https://www.deviantart.com/megancoffey/art/Freshwater-Mermaid-IX-791141456"><img alt="Freshwater Mermaid IX by MeganCoffey" data-sigil="torpedo-img" src="https://images-wixmp-ed30a86b8c4ca887773594c2.wixmp.com/f/2e5b4d72-fc4d-4d0f-9401-a440d98f9695/dd30wnk-d7e440d7-f716-4634-83f6-8b2850a3bfee.jpg/v1/crop/w_188,h_250,x_0,y_0,scl_0.047,q_70,strp/freshwater_mermaid_ix_by_megancoffey_dd30wnk-250t.jpg?token=eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzdWIiOiJ1cm46YXBwOjdlMGQxODg5ODIyNjQzNzNhNWYwZDQxNWVhMGQyNmUwIiwiaXNzIjoidXJuOmFwcDo3ZTBkMTg4OTgyMjY0MzczYTVmMGQ0MTVlYTBkMjZlMCIsIm9iaiI6W1t7ImhlaWdodCI6Ijw9MTcwNyIsInBhdGgiOiJcL2ZcLzJlNWI0ZDcyLWZjNGQtNGQwZi05NDAxLWE0NDBkOThmOTY5NVwvZGQzMHduay1kN2U0NDBkNy1mNzE2LTQ2MzQtODNmNi04YjI4NTBhM2JmZWUuanBnIiwid2lkdGgiOiI8PTEyODAifV1dLCJhdWQiOlsidXJuOnNlcnZpY2U6aW1hZ2Uub3BlcmF0aW9ucyJdfQ.iufhVUDxdplAqKYw4Ci49JOPfH46_qpkLvnm6VrgszA"/> <span class="saved-faved-corner" data-sigil="saved-faved-corner"></span>
</a>

Последний раз редактировалось dark-------13, 05-04-2019 в 12:43.


Отправлено: 11:44, 05-04-2019 | #30



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - python вопрос по работе скрипта

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Прочее - Вопрос по работе в сети serge8 Сетевые технологии 7 14-08-2018 17:35
[решено] Вопрос по работе For, While HFShak AutoIt 3 19-03-2015 10:28
.NET - Вопрос по работе с памятью navab Программирование и базы данных 1 14-12-2012 10:46
HDD - Вопрос по работе в DMDE van_De_Star Накопители (SSD, HDD, USB Flash) 2 06-09-2012 17:02
Вопрос по работе с файлами по сети NorthWich Программное обеспечение Windows 2 29-02-2008 12:56




 
Переход