Предмет: Информатика, автор: marina7926

Ваше завдання — зробити програму, яка шукатиме введену інформацію на сторінках в інтернеті,
посилання на які міститимуться в БД.
Чим частіше введені дані траплятимуться на сторінці, тим вище в результівному списку має розташуватися сайт. Крім цього, користувач повинен
мати зручний інтерфейс для додавання свого переліку сайтів, очищення БД та перегляду результатів пошуку.

Ответы

Автор ответа: mixail0809
0

!!! ТРЕБА МАТИ МОДУЛЬ REQUESTS ВСТАНОВЛЕНО !!!

import requests

from bs4 import BeautifulSoup

import sqlite3

# Підключення до бази даних

conn = sqlite3.connect('sites.db')

c = conn.cursor()

# Створення таблиці для збереження сайтів

c.execute('''CREATE TABLE IF NOT EXISTS sites

(id INTEGER PRIMARY KEY AUTOINCREMENT,

url TEXT NOT NULL);''')

# Додавання нового сайту до бази даних

def add_site():

url = input("Enter the URL of the website you want to add: ")

c.execute("INSERT INTO sites (url) VALUES (?)", (url,))

conn.commit()

print("The website has been added successfully.")

# Видалення сайту з бази даних

def remove_site():

url = input("Enter the URL of the website you want to remove: ")

c.execute("DELETE FROM sites WHERE url=?", (url,))

conn.commit()

print("The website has been removed successfully.")

# Очищення бази даних

def clear_database():

c.execute("DELETE FROM sites")

conn.commit()

print("The database has been cleared successfully.")

# Функція для отримання сторінки сайту та пошуку введеної інформації

def search_website(url, query):

# Запит до сайту та отримання HTML-коду сторінки

r = requests.get(url)

soup = BeautifulSoup(r.content, 'html.parser')

# Пошук введеної інформації на сторінці

count = soup.text.count(query)

return count

# Функція для пошуку введеної інформації на всіх сайтах з бази даних

def search_websites(query):

results = []

# Виконання запиту до бази даних, щоб отримати список сайтів

c.execute("SELECT * FROM sites")

rows = c.fetchall()

# Пошук введеної інформації на кожному сайті та збереження результатів

for row in rows:

url = row[1]

count = search_website(url, query)

results.append((url, count))

# Сортування результатів за кількістю зустрічей введеної інформації на сайті

results.sort(key=lambda x: x[1], reverse=True)

# Виведення результатів пошуку

print("Search results:")

for result in results:

print(result[0], "-", result[1])

# Основний цикл програми

while True:

print("What would you like to do?")

print("1. Add a website to the database")

print("2. Remove a website from the database")

print("3. Clear the database")

print("4. Search for information on websites")

print("5. Exit")

choice = input("Enter your choice: ")

if choice == "1":

add_site()

elif choice == "2":

remove_site()

elif choice == "3":

clear_database()

elif choice == "4":

query = input("Enter the information you want to search for: ")

search_websites(query)

elif choice == "5":

break

else:

print("Invalid choice. Please try again.")

# Закриття з'єднання з базою даних

conn.close()

Похожие вопросы
Предмет: Русский язык, автор: romabellingham
ПИСЬМО Выберите одно из предложенных высказываний. Напишите эссе объемом 140-160 слов, соблюдая последовательность изложения мысли, смысловую цельность и стилистическое единство. Пишите в соответствии с нормами языка. Используйте существительные, прилагательные, наречия, простые и сложные предложения, соответствующие ситуации единиц письменного общения. Время выполнения 20 МИН. [10] 1. «Культура - видовой отличительный признак человека: сохраняемый и передаваемый опыт» (А.Круглов) 2. «Традиция - это та часть нашего прошлого, которой мы помогаем перебраться в будущее» (В.Кротов) 3. «Из общения с природой вы вынесете столько света, сколько вы захотите, и столько мужества и силы, сколько вам нужно» (Иоганн Готфрид Зейме) 4. «Леса учат человека понимать прекрасное» (А.П. Чехов) ГОВОРЕНИЕ Создайте аргументированное высказывание - рассуждение (объемом не менее 10 предложений) для выступления на школьных дебатах по предложенной теме, используйте приемы привлечения внимания. У вас есть 1 минута ДЛЯ ПОДГОТОВКИ и 2 минуты для устного ответа. Во время подготовки можно делать записи. Соблюдайте речевые нормы и логику изложения материала. [10]​
Предмет: Алгебра, автор: porpik