Может всё-таки заменят?

Привет. В браузере Microsoft Edge ЧатЖПТ 4 стоит по умолчанию. Не знаю кастрированный он или нет, но работает вроде норм и без ограничений. И да, я живу не в России, рядом) Нука дай думаю всё-таки гляну, такой уж он тупой или нет. Помню как то очень давно был такой скрипт, который рандомно качал с сайта ЛигхШот)) скриншоты, которые сохраняют люди. Были очень интересные картинки, даже с личными данными (странные люди). Но так как искать его было лень, дай думаю попрошу ИИ сделать такой скрипт, скажу сразу, что в написании кода, я просто полный ноль. Знаю только одно, чтоб он все сделал более менее правильно, нужно объяснять ему, что ты хочешь очень подробно. Так как я полный нуб то стал ему объяснять, что надо сделать, чуть ли не своими простыми словами) И через какоето время, ну может пол часа, он написал вполне сносный код))!! Блин, если честно я испытал какуето радость и может быть даже трепет, что все получилось у меня, да именно у меня) да я гребаный гений)))

Может всё-таки заменят? Программа, Питон, Python, ChatGPT, Длиннопост

И да. Код был написан, чтоб работал в среде Colab. Это такой типа Блокнот от Гугла. Просто напишите colab.google и там все поймете.

Кому надо может попробовать этот код.

import random

import requests

from bs4 import BeautifulSoup

from PIL import Image as PILImage

from IPython.display import display, clear_output

from io import BytesIO

import time

import ipywidgets as widgets

import os

from concurrent.futures import ThreadPoolExecutor

# Функция для генерации случайных ссылок

def generate_random_links(num_links):

base_url = 'https://prnt.sc/'

links = []

for _ in range(num_links):

# Генерируем случайную строку длиной 6 символов (цифры и буквы)

random_code = ''.join(random.choices('abcdefghijklmnopqrstuvwxyz0123456789', k=6))

links.append(base_url + random_code)

return links

# Функция для получения изображения по ссылке

def fetch_image(url):

headers = {'User-Agent': 'Mozilla/5.0'}

try:

response = requests.get(url, headers=headers)

if response.status_code == 429:

print(f"Превышено количество запросов. Ждем 5 секунд для {url}...")

time.sleep(5) # Ждем 5 секунд и повторяем запрос

response = requests.get(url, headers=headers)

if response.status_code == 404:

print(f"Ошибка загрузки изображения. Код состояния: 404 для {url}")

return None

if response.status_code != 200:

print(f"Ошибка загрузки страницы. Код состояния: {response.status_code} для {url}")

return None

# Парсим страницу

soup = BeautifulSoup(response.text, 'html.parser')

# Находим тег img с классом 'no-click screenshot-image'

img_tag = soup.find('img', {'class': 'no-click screenshot-image'})

if img_tag and 'src' in img_tag.attrs:

img_url = img_tag['src']

if img_url.startswith('//'):

img_url = 'https:' + img_url

img_response = requests.get(img_url, headers=headers)

if img_response.status_code != 200:

print(f"Ошибка загрузки изображения. Код состояния: {img_response.status_code} для {url}")

return None

img_data = BytesIO(img_response.content)

img = PILImage.open(img_data)

return img

else:

print(f"Изображение не найдено на странице для {url}")

return None

except Exception as e:

print(f"Ошибка: {e} для {url}")

return None

# Функция для обработки многопоточной загрузки изображений

def process_link(link):

img = fetch_image(link)

if img:

display(img) # Отображаем изображение

return img

# Функция для запуска многопоточной загрузки

def on_start_button_clicked(b):

global images

clear_output(wait=True)

display(widgets.VBox([num_screenshots_input, start_button, save_button])) # Оставляем форму всегда сверху

num_screenshots = num_screenshots_input.value

links = generate_random_links(num_screenshots)

images = []

# Многопоточность для параллельной загрузки изображений

with ThreadPoolExecutor() as executor:

futures = [executor.submit(process_link, link) for link in links]

for future in futures:

img = future.result()

if img:

images.append(img)

time.sleep(1) # Небольшая пауза между запросами

# Функция для сохранения изображений

def on_save_button_clicked(b):

global images

save_folder = '/content/screenshots' # Папка для сохранения изображений в Colab

if not os.path.exists(save_folder):

os.makedirs(save_folder)

for i, img in enumerate(images):

save_path = os.path.join(save_folder, f'screenshot_{i+1}.png')

img.save(save_path)

print(f"Сохранено: {save_path}")

# Архивируем папку с изображениями и создаем ссылку для скачивания

!zip -r /content/screenshots.zip /content/screenshots

print("Изображения сохранены и доступны для загрузки: ")

from google.colab import files

files.download('/content/screenshots.zip')

# Виджеты для формы

num_screenshots_input = widgets.IntText(value=1, description="Кол-во ссылок:")

start_button = widgets.Button(description="Начать")

save_button = widgets.Button(description="Сохранить")

# Обработчики нажатия кнопок

start_button.on_click(on_start_button_clicked)

save_button.on_click(on_save_button_clicked)

# Отображение формы

display(widgets.VBox([num_screenshots_input, start_button, save_button]))