/Yandex_news

parsing news, mysql, mongodb

Primary LanguagePython

Приложения для парсинга новостей на примере yandex

Проект позволяет собирать (парсить) яндекс новости по московской области и складывать их в базу данных mysql. В качестве дополнительной опции, есть возможность загружать данные в MongoDB.

Логика работы приложения:

  1. Парсит новости по указанной ссылке
  2. Обрабатывает данные и выводит в формат dataframe
  3. Экспортирует данные в Mysql / MondogDB
  4. Изменяет формат данных в таблице Mysql с учетом специфики поля (текст, дата, ключ(primary key))

Ссылка для парсинга:
url = 'https://news.yandex.ru/Moscow_and_Moscow_Oblast/index.html'

Список библиотек необходимых для запуска:

requests
pandas
bs4
datetime
numpy
sqlalchemy
pymysql
pymongo

Его можно скачать при помощи файла requirements.txt. Команда из терминала:
pip install -r requirements.txt.

Кроме этого, необходимо установить Mysql server https://dev.mysql.com/downloads/mysql/
или Mongodb https://docs.mongodb.com/manual/installation/

Быстрый запуск:

Шаг 1. Скачать все библиотеки, скачать все файлы из репозитория. Список файлов:

change_data_type_mysql.py
parse_news.py
request_site.py
requirements.txt
time_convey.py
upload_mongo.py
upload_mysql.py

Шаг 2.Выбрать вариант:

загрузка данных в Mysql

При использовании Mysql, необходимо изменить параметры Mysql на свои в файле upload_mysql.py:

  • host
  • user
  • password
  • db_name #если хотите использовать свое название

загрузка данных в MongoDB

При использовании Mysql, необходимо изменить текущие параметры MongoDB на свои в файле upload_mongo.py:

Текущие параметры:

IP адрес - 127.0.0.1
Port - 27017

Строка кода, где это изменить:
client = MongoClient('mongodb://127.0.0.1:27017')

Шаг 3. Запустить главный файл командой строке.

При запуске из Terminal необходимо находиться в папке, где лежать все файлы.

Пример запуска Mysql:
python upload_mysql.py

Пример запуска MongoDb:
python upload_mongo.py

В результате успешного выполнения коды, вы увидите в Terminal:

 База данных загружена
 Формат данных изменен

Следующие шаги:

  1. Создание функции update при парсинге новых данных с учетом того, что мы уже загрузили в Mysql
  2. Создание приложения сервер - клиент с дополнительной возможностью скачать данные в формате csv
  3. Создание docker контейнера, который будет запускать сервис каждые 2 часа и складывать данные в базу данных

Контакты разработчика:

Озернов Михаил
ozernov@bk.ru