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