Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
from bs4 import BeautifulSoup | |
def process_url(url, method): | |
try: | |
if method == "Обычный запрос": | |
response = requests.get(url) | |
elif method == "Через прокси": | |
proxies = { | |
"http": "http://your_proxy:port", | |
"https": "http://your_proxy:port" | |
} | |
response = requests.get(url, proxies=proxies) | |
elif method == "Только заголовки": | |
response = requests.head(url) | |
return f"Заголовки:\n{response.headers}" | |
response.raise_for_status() | |
if method != "Только заголовки": | |
soup = BeautifulSoup(response.content, 'html.parser') | |
page_title = soup.title.string if soup.title else "Нет заголовка" | |
page_preview = soup.prettify()[:500] # Ограничиваем вывод до 500 символов | |
return f"Заголовок страницы: {page_title}\n\nПредварительный просмотр кода:\n{page_preview}" | |
except requests.exceptions.RequestException as e: | |
return f"Ошибка при обработке URL: {e}" | |
# Создаем интерфейс | |
with gr.Blocks() as demo: | |
gr.Markdown("## Введите ссылку для просмотра исходного кода сайта") | |
url_input = gr.Textbox(label="Введите URL", placeholder="http://example.com") | |
method_selector = gr.Dropdown(choices=["Обычный запрос", "Через прокси", "Только заголовки"], | |
label="Метод обработки", value="Обычный запрос") | |
submit_button = gr.Button("Отправить") | |
output_text = gr.Textbox(label="Результат", lines=20) | |
# Обработка нажатия кнопки | |
submit_button.click(process_url, inputs=[url_input, method_selector], outputs=output_text) | |
# Запуск приложения | |
demo.launch(server_name="0.0.0.0", server_port=7860) |