Jump to content
49406

Recommended Posts

Posted (edited)

Всем привет!
В данной статье я покажу как написать программу для поиска фотографий на сайте i.imgur.
Написал прототип я достаточно давно, но набравшись сил, умений и ума я напишу 2 версию, которая поможет новичкам-хацкерам Python'а.

 

Существует портал i.imgur.com, который является фото-хостингом.

Рассмотрим вид ссылок на изображения сайта

https://i.imgur.com/cN5i5qJ.jpg - интересный комикс

https://i.imgur.com/eUQbLMb.jpg - еще что-то.

Дело в том, что первая часть ссылки на сайт(курсив) всегда одинаковый.

А приставка формата изображения(жирный) уточняет, что именно мы ищем.

На основе этих знаний пишем программу:

import requests #Эта строка нужна для дальнейшего считывания и скачивания файлов

import random # Ну это понятно 

with open("ALL.txt", "r") as backfile:#Мы считаем сколько строк есть в файле "ALL.txt", который имеет 2 пустые строки
        lines = backfile.readlines()
        cv = len(lines)
        a = cv - 2
        aa = a + 1
def ImgurStart():
    global aa
    siteName = "https://i.imgur.com/"
    print("print format you want to use")#спрашиваем, какой формат нам нужен
    
    Format = input()
    print("_"*20)
    Format = "." + Format#соединяем 
    ProvFile = "https://i.imgur.com/LPZb2u2" + Format
    PR = requests.get(ProvFile)
    PR2 = PR.content'''Вот тут нам и нужен requests. Дело в том, что если зайти на несуществующее изображение, то мы увидим это:removed.png. Чтобы не скачивать такие изображения мы сделаем так: получим значение этого фото и если оно совпадает с тем, что мы нашли, что мы парсим - не скачивать изображение '''
 A = False
    print(siteName, "has been started with", Format)
    print("_"*20)
    print('\n'*5)
 
    while A != True:
        b = str(aa)
        File = b + Format
        Num = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")
        Num2 = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")
        Num3 = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")
        Num4 = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")
        Num5 = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")
        Num6 = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")
        Num7 = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")

Name = siteName + Num + Num2+ Num3 + Num4 + Num5 + Num6 + Num7 + Format#Создаем ссылку на изображение, что будем проверять 

 

        Lol = requests.get(Name)#Получаем значение этого фото с на строку выше созданной ссылки
        Lol2 = Lol.content
 
    
        if Lol2 == PR2:#Сравнение неправильной ссылки и той, которую сделали только-что
            #Не делаем ничего 
        else:
            Naydi = open("ALL.txt", "a")#а если разные, то скачиваем фото и пишем в программу
            LName = Name + "\n"
            Naydi.write(LName)
            Naydi.close();
            print(Name)
            print("Exist")#Пишем в окно
            f = open(File, "wb")
            ufr = requests.get(LName)#сохраняем Фоточку
            f.write(ufr.content)
            f.close();
            aa = aa + 1
 
ImgurStart();#Ну и запускаем программу
 
За время написания темы я чуть не уссался получил несколько фото которые можно скачать по этой ссылке:http://fex.net/zip/104683529990/0
Ну а саму программу в exe-файле( который будет легче скачать, чем пайтон а потом скопипастить) тут:https://fex.net/zip/468662213902/0
 
Унимание:
Не удаляйте блокнот, который идет вместе с файлом exe/py. Без него происходит ошибка, которую мы пофиксим в следующей версии программы
Edited by Rescor
Posted

Да, но данная тема была написана для новичков с предельно простыми объяснениями. Хотя более профессиональной и красивой была-бы твоя

  • 6 months later...

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...