Top.Mail.Ru
Ответы
Аватар пользователя
Аватар пользователя
Аватар пользователя
Аватар пользователя
Программирование
+4

Проект на Python

Ваша задача — сделать программу, которая будет искать введенную информацию на страницах
в интернете, а ссылки на них будут содержаться
в БД.
Чем чаще введенные данные будут попадаться
на странице, тем выше в результирующем списке
должен расположиться сайт. Кроме этого, пользователь должен иметь удобный интерфейс для
добавления своего списка сайтов, очистки БД и
просмотра результатов поиска.
Процесс разработки можно условно разделить на
этапы, которые рассмотрим ниже.
1. Создание архитектуры программы.
Продумайте архитектуру программы и создайте
отдельные объекты для каждого из ее логических элементов. Например, программу можно разделить на три
объекта:
■ Объект, работающий с базой данных.
■ Объект, который парсит сайты.
■ Объект пользовательского интерфейса.
Их взаимодействие нужно прописать в функции
run(), которая вызывается в блоке запуска программы
(if __name__ == "__main__":).
2. Реализация атрибутов и методов объектов.
На этом этапе нужно наполнить объявленные объекты содержанием, добавив их атрибуты и методы.

-------
Помогите с проектом пожалуйста

По дате
По рейтингу
Аватар пользователя
Новичок

import sqlite3 # Для работы с базой данных
import requests # Для веб-парсинга
from bs4 import BeautifulSoup # Для обработки HTML
from flask import Flask, request, render_template # Для создания веб-интерфейса

# Создаем объект базы данных
class Database:
def __init__(self, db_name):
self.conn = sqlite3.connect(db_name)
self.cursor = self.conn.cursor()
self.cursor.execute('''CREATE TABLE IF NOT EXISTS sites (url TEXT, content TEXT)'')

def add_site(self, url, content):
self.cursor.execute('INSERT INTO sites VALUES (?, ?)', (url, content))
self.conn.commit()

def search_sites(self, query):
self.cursor.execute('SELECT url, COUNT(*) as count FROM sites WHERE content LIKE ? GROUP BY url', ('%' + query + '%',))
result = self.cursor.fetchall()
result.sort(key=lambda x: x[1], reverse=True)
return result

def clear_database(self):
self.cursor.execute('DELETE FROM sites')
self.conn.commit()

# Создаем объект для парсинга сайтов
class WebParser:
def parse_site(self, url):
try:
response = requests.get(url)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
return soup.get_text()
except Exception as e:
print("Ошибка при парсинге сайта:", str(e))
return ""

# Создаем объект пользовательского интерфейса с использованием Flask
app = Flask(__name)

@app.route('/')
def index():
return render_template('index.html')

@app.route('/add_site', methods=['POST'])
def add_site():
url = request.form['url']
content = web_parser.parse_site(url)
if content:
database.add_site(url, content)
return render_template('index.html')

@app.route('/search', methods=['POST'])
def search():
query = request.form['query']
result = database.search_sites(query)
return render_template('search_results.html', results=result)

@app.route('/clear')
def clear():
database.clear_database()
return render_template('index.html')

if __name__ == '__main__':
database = Database
('sites.db')
web_parser = WebParser()
app.run(debug=True)

Аватар пользователя
Профи

Как тебе помогут с проектом, ты думаешь это 5 минут написать?

Аватар пользователя
Гуру

Зачем вы сидите в путонах если сами нихрена не можете там решить