Перейти к содержанию
49406

Создания парсинга фото i.imgur.com #1


AB10000001

Рекомендуемые сообщения

Всем привет!
В данной статье я покажу как написать программу для поиска фотографий на сайте 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. Без него происходит ошибка, которую мы пофиксим в следующей версии программы
Изменено пользователем Rescor
Ссылка на комментарий
Поделиться на другие сайты

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

Ссылка на комментарий
Поделиться на другие сайты

  • 6 месяцев спустя...

Присоединяйтесь к обсуждению

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

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
×
×
  • Создать...