обещаю выложить все на этот форум если поможете спарсить, плиииз!
короче вот что мне выдал ии:
все ворк, но страницы качаются без картинок.
договорились сделать чтобы было с картинками, он че то наколдовал, и говорит -
я прошу прощения, но я не догоняю заместо чего это вставить, прошу помощи. для меня все это китайский язык.
дайте пожалуйста ответ конкретный откуда до куда удалить заместо чего вставить это второй кусок.
СПАСИБО ЗАРАНЕЕ!!!
короче вот что мне выдал ии:
Code:
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.options import Options
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
import time
import json
import re
def sanitize_filename(name):
return re.sub(r'[^\w\-_.]', '_', name)
def login(driver):
driver.get("http://xssforumv3isucukbxhdhwz67hoa5e2voakcfkuieq4ch257vsburuid.onion/")
print("🧠 Жду, пока ты пройдёшь капчу...")
try:
WebDriverWait(driver, 300).until(
EC.presence_of_element_located((By.NAME, "login"))
)
print("✅ Капча пройдена, форма найдена")
driver.find_element(By.NAME, "login").send_keys("ТВОЙ ЛОГИН")
driver.find_element(By.NAME, "password").send_keys("ТВОЙ ПАРОЛЬ")
driver.find_element(By.NAME, "login").submit()
time.sleep(3)
except Exception as e:
print(f"❌ Не удалось найти форму логина: {e}")
from bs4 import BeautifulSoup
import os
import requests
import base64
import mimetypes
from urllib.parse import urljoin, urlparse
def download_thread(driver, topic):
url = topic["url"]
thread_id = url.rstrip("/").split("/")[-1]
folder = f"thread_{thread_id}"
os.makedirs(folder, exist_ok=True)
filename = os.path.join(folder, "thread.html")
print(f"📥 Загружаю тред: {url}")
driver.get(url)
time.sleep(3)
html = driver.page_source
if "captcha" in html.lower() or "cloudflare" in html.lower():
print("🛑 Капча обнаружена! Введи её вручную в открытом браузере.")
input("👉 Нажми Enter, когда капча будет пройдена...")
html = driver.page_source
soup = BeautifulSoup(html, "html.parser")
posts = soup.find_all("div", class_="bbWrapper")
if not posts:
print("⚠️ Посты не найдены. Структура страницы могла измениться.")
return
for i, post in enumerate(posts):
for img in post.find_all("img"):
src = img.get("src")
if not src:
continue
if src.startswith("data:image"):
try:
header, encoded = src.split(",", 1)
match = re.match(r'data:image/(.+);base64', header)
ext = match.group(1) if match else "png"
img_data = base64.b64decode(encoded)
img_name = sanitize_filename(f"post{i}_embedded.{ext}")
img_path = os.path.join(folder, img_name)
with open(img_path, "wb") as f:
f.write(img_data)
img["src"] = img_name
print(f"🧬 Встроенная картинка сохранена: {img_name}")
except Exception as e:
print(f"⚠️ Ошибка при сохранении встроенной картинки: {e}")
continue
try:
img_url = urljoin(url, src)
ext = os.path.splitext(urlparse(img_url).path)[1]
if not ext:
ext = mimetypes.guess_extension("image/jpeg") or ".jpg"
img_name = sanitize_filename(f"post{i}_{os.path.basename(urlparse(img_url).path)}")
img_path = os.path.join(folder, img_name)
response = requests.get(img_url, timeout=10)
with open(img_path, "wb") as f:
f.write(response.content)
img["src"] = img_name
print(f"🖼️ Картинка сохранена: {img_name}")
except Exception as e:
print(f"⚠️ Не удалось скачать {src}: {e}")
with open(filename, "w", encoding="utf-8") as f:
f.write("<html><body>\n")
for post in posts:
f.write(str(post))
f.write("<hr>\n")
f.write("</body></html>")
print(f"✅ Тред сохранён: {filename}")
def process_topics_file():
options = Options()
options.headless = False
# 🔧 Настройки прокси для Tor
options.set_preference("network.proxy.type", 1)
options.set_preference("network.proxy.socks", "127.0.0.1")
options.set_preference("network.proxy.socks_port", 9150)
options.set_preference("network.proxy.socks_remote_dns", True)
driver = webdriver.Firefox(options=options)
login(driver)
driver.get("https://check.torproject.org/")
input("🕵️ Проверь в браузере: написано ли 'Congratulations'? Нажми Enter, когда проверишь...")
with open("topics_Уязвимости_web-приложений.json", "r", encoding="utf-8") as f:
topics = json.load(f)
ONION_BASE = "http://xssforumv3isucukbxhdhwz67hoa5e2voakcfkuieq4ch257vsburuid.onion"
for topic in topics:
topic["url"] = topic["url"].replace("https://xss.as", ONION_BASE)
for topic in topics:
download_thread(driver, topic)
time.sleep(5)
driver.quit()
if __name__ == "__main__":
process_topics_file()
все ворк, но страницы качаются без картинок.
договорились сделать чтобы было с картинками, он че то наколдовал, и говорит -
Не удалось прогрузить медиа
Code:
import os
import requests
from urllib.parse import urlparse, parse_qs, urljoin
def download_image(src, base_url, save_path):
# Если это прокси-ссылка — парсим реальный URL
if src.startswith("/proxy.php?"):
try:
query = urlparse(src).query
image_url = parse_qs(query).get("image", [None])[0]
if image_url:
img_url = image_url
print(f"🔄 Прямая ссылка извлечена: {img_url}")
else:
print(f"⚠️ Не удалось извлечь image URL из: {src}")
return
except Exception as e:
print(f"⚠️ Ошибка при разборе proxy-ссылки: {e}")
return
else:
# Обычная картинка — используем абсолютный путь
img_url = urljoin(base_url, src)
try:
response = requests.get(img_url, timeout=10)
response.raise_for_status()
filename = os.path.basename(urlparse(img_url).path)
filepath = os.path.join(save_path, filename)
with open(filepath, "wb") as f:
f.write(response.content)
print(f"✅ Картинка сохранена: {filename}")
except Exception as e:
print(f"⚠️ Ошибка при скачивании {img_url}: {e}")
я прошу прощения, но я не догоняю заместо чего это вставить, прошу помощи. для меня все это китайский язык.
дайте пожалуйста ответ конкретный откуда до куда удалить заместо чего вставить это второй кусок.
СПАСИБО ЗАРАНЕЕ!!!
👍23
😁6
😮3
LIMB