AB10000001 Posted February 18, 2019 Report Posted February 18, 2019 (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 + 1def 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. Дело в том, что если зайти на несуществующее изображение, то мы увидим это:. Чтобы не скачивать такие изображения мы сделаем так: получим значение этого фото и если оно совпадает с тем, что мы нашли, что мы парсим - не скачивать изображение ''' 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 February 18, 2019 by Rescor 5irFant0ma5 1 Quote
root Posted February 18, 2019 Report Posted February 18, 2019 Num = random.choice("QWERTYUIOPASDFGHJKLZXCVBNMqwertyuiopasdfghjklzxcvbnm1234567890")Гениально. Rescor 1 Quote
AB10000001 Posted February 18, 2019 Author Report Posted February 18, 2019 А собственно, что не так? Quote
root Posted February 18, 2019 Report Posted February 18, 2019 А собственно, что не так? import random import string random_name = lambda length: ''.join(random.sample(string.letters+string.digits, length)) print random_name(8) Rescor 1 Quote
AB10000001 Posted February 18, 2019 Author Report Posted February 18, 2019 Да, но данная тема была написана для новичков с предельно простыми объяснениями. Хотя более профессиональной и красивой была-бы твоя Quote
5irFant0ma5 Posted September 10, 2019 Report Posted September 10, 2019 А слабо написать парсер фоток для ВК? Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.