Программирование на PyQt может быть очень полезным и интересным способом создать приложение с графическим интерфейсом. В этом туториале мы рассмотрим как создать парсер новостей с использованием PyQt.
Шаг 1: Установка PyQt
Прежде чем начать работу с PyQt, нужно установить его на ваш компьютер. Для этого откройте терминал и выполните команду:
pip install PyQt5
Шаг 2: Создание основного окна
Создадим основное окно для нашего парсера новостей. Для этого создайте файл parser.py и добавьте следующий код:
import sys
from PyQt5.QtWidgets import QApplication, QWidget
class ParserWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Новостной парсер")
self.setGeometry(100, 100, 800, 600)
if __name__ == '__main__':
app = QApplication(sys.argv)
window = ParserWindow()
window.show()
sys.exit(app.exec_())
Шаг 3: Добавление элементов интерфейса
Теперь давайте добавим элементы интерфейса для нашего парсера новостей. Для этого добавьте следующий код в метод init класса ParserWindow:
from PyQt5.QtWidgets import QHBoxLayout, QVBoxLayout, QLabel, QPushButton, QTextEdit
class ParserWindow(QWidget):
def __init__(self):
super().__init__()
self.setWindowTitle("Новостной парсер")
self.setGeometry(100, 100, 800, 600)
self.layout = QVBoxLayout()
self.label = QLabel("Введите URL новостного сайта:")
self.layout.addWidget(self.label)
self.url_input = QTextEdit()
self.layout.addWidget(self.url_input)
self.parse_button = QPushButton("Парсить новости")
self.parse_button.clicked.connect(self.parse_news)
self.layout.addWidget(self.parse_button)
self.news_output = QTextEdit()
self.news_output.setReadOnly(True)
self.layout.addWidget(self.news_output)
self.setLayout(self.layout)
def parse_news(self):
# Здесь будет код для парсинга новостей
pass
Шаг 4: Парсинг новостей
Теперь давайте добавим код для парсинга новостей с введенного пользователем URL. Для этого используем библиотеку requests для отправки запроса на сайт и BeautifulSoup для парсинга HTML страницы. Добавьте следующий код в метод parse_news:
import requests
from bs4 import BeautifulSoup
def parse_news(self):
url = self.url_input.toPlainText()
response = requests.get(url)
html = response.text
soup = BeautifulSoup(html, 'html.parser')
news_titles = soup.find_all('h2')
news_list = [title.get_text() for title in news_titles]
self.news_output.setPlainText('n'.join(news_list))
Шаг 5: Запуск приложения
Теперь вы можете запустить ваш парсер новостей, выполните python parser.py в терминале и введите URL новостного сайта, нажмите на кнопку "Парсить новости" и вы увидите заголовки новостей на странице.
Это был пример, как создать парсер новостей с использованием PyQt. Вы можете расширить функционал приложения, добавив сохранение новостей в файл, добавлением возможности парсить другие типы данных и т.д. Надеюсь этот туториал был полезен и вы научились создавать приложения на PyQt.
Привет дружище !!! Вопрос такой , а можно ли сделать такой парсер , чтобы искал из динамического списка ( списка тхт ) новости со всех источников. С возможностью разделения по датам? Например : хеш : "Путин одобрил" искать по датам 17.10.18. ; за всё время; за неделю ; за месяц… Подскажи пожалуйста !
Как сделать русский интерфейс у дизайнера а то у меня на английском
Спасибо тебе огромное!
Аа бльааа, пикьютииии. Уууууууууъ сссука
Автор можете написать ссылку на ваш новый сайт?
Привет! можно исходник парсера новостей пожалуйста, на твоем новом сайте не нашел. Благодарю за ранее!
Спасибо тебе за видео, давай ещё что нибудь новенькое, с меня подписка и лайк)
В целом, видео неплохое, замечание одно – регулярка и потом сплит. Это жесть. Вся ссылка берется в регулярку. На месте href – первую группу ставим, и на месте самого текста ссылки – вторую. И сплит не нужен будет.
Откуда копировать код который выставляется на bat файл?
Покамись
Сохраните себе время.
Вот мое видео, где я за 5 минут все объясняю: https://youtu.be/iw6q-eBm630
Посмотрите это, а не это видео.
Ухи режут эти "ссылоЧКИ, массивЧИКИ, заголовоЧКИ, списоЧКИ, строчеЧКИ и тд итп" … ебать! Ну ты чо, камон!!!
P.S.
А в остальном всё гуд. Спасссссибо!!! ))
Добрый день. Я учусь писать код. Хочу парсить новости. Застрял на первой части вашего видео, где после конвертации в формат *.py вносятся незначительные изменения в news.py и запускается. Не хочет запускаться файл, выдает ошибку:
Traceback (most recent call last):
File "news.py", line 24, in <module>
myapp = MyWin()
File "news.py", line 9, in _init_
self.ui = Ui_MainWindow()
NameError: name 'Ui_MainWindow' is not defined
Работаю в pycharm, пробовал в IDLE Pythonю и через командную строку py news.py. Пакеты установил, в виртуальной среде пробовал запустить, пакеты для виртуальной среды тоже установил. Даже Python 2.7 устанавливал, а потом снес. Ну не хочет запускаться. Взял файл готовый с сайта вашего, но ошибка все та же. Бился больше 2-х часов. Расстроен.
Без дополнительных танцев, из PyQT нельзя в код питона все это переводить?
Написание отдельных примочек конвертации, потом шаблоны и т.д. как-то напрягает.
Спасибо большое!!
Чувак 21 век на дворе 2017 год Apple разработала и запустила в продакшен уже ArKit. ты что в "Worlde" пишешь код? Скачай PyCharm ну или Atom ну или Sublim, это сейчас все бесплатно! Ну не возможно смотреть уроки глаза выпадают от этого синтаксиса. Братишка переходи на новые технологии хотя они уже даже устарели!
from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: DLL load failed: Не найдена указанная процедура.
>>>