Парсер для сервиса ВкуссВилл

Harry Potter 3fe782602f Сделана сортировка плохих отзывов 10 months ago
data_statistics 3fe782602f Сделана сортировка плохих отзывов 10 months ago
db b763b808e3 Сделана функция для подсчета среднего значения какой-то последовательности 10 months ago
scraper dc4ef5c00c Отредактировано получение статистики для создания таблицы со средней оценкой продуктов 10 months ago
user_data 2995d7f2c3 Добавлены дополнительные объяснения 10 months ago
.dockerignore 1b2e4d48d2 Добавлен dockerignore 10 months ago
.env.dist 8e13920db3 Изменен шаблон для .env 10 months ago
.gitignore d9e5460156 Добавлены ненужные файлы 10 months ago
Dockerfile 6a3f3e88ef Теперь можно запускать через docker 10 months ago
README.txt 9b72a0e6b5 Поправлена документация 10 months ago
__init__.py 3281f1142b Сделана начальная структура для запуска парсинга 11 months ago
celery_app.py fc338331c0 Из двух задач сделана одна 10 months ago
docker-compose.yml 6a3f3e88ef Теперь можно запускать через docker 10 months ago
entrypoint.sh 6a3f3e88ef Теперь можно запускать через docker 10 months ago
init_installation.sh 6a3f3e88ef Теперь можно запускать через docker 10 months ago
main.py 7276322a30 Добавлен замер времени для парсинга и рассылки информации 10 months ago
requirements.txt f76523cefc Обновлены зависимости 10 months ago
settings.py 67feed70f4 Скрыта информация о боте 10 months ago
utils.py b763b808e3 Сделана функция для подсчета среднего значения какой-то последовательности 10 months ago

README.txt

Парсер для сервиса ВкусВилл


- Папка user_data - единственное место где можно редактировать файлы (не разработчику).

- Файл user_data/generated_statistics/tables - статистика данных по парсингу.

- Файл user_data/list_of_products_for_parsing.txt - список товаров которые
будут парситься и по которым будет рассылаться статистика.

- Файл user_data/list_of_proxies.txt - список прокси который будет использоваться
при парсинге указанных продуктов.

- Файл user_data/malling_by_email.txt - список электронных почт.

- Файл user_data/settings.txt - файл с настройками парсинга. Пока там указано
только время для запуска парсера и отправки данных.


- Для запуска необходимо выполнить следующие действия:

===== 1. УКАЗАТЬ НЕОБХОДИМЫЕ ДАННЫЕ ДЛЯ ПАРСИНГА (когда уже будет скачан сам парсер, не забудьте) =====

1.1 Указать какие товары будут парситься.

1.2 Указать список электронных почт, с которой будет отправляться статистика и куда.
В файле user_data/malling_by_email.txt написана инструкция как это сделать.

1.3 Указать время для парсинга и отправки результатов.

1.4 Указать прокси которые будут использоваться для парсинга.

1.5 Создать файл в папке парсера (scraper_vkusvill) .env и заполнить его по шаблону файла .env.dist


===== 2. УСТАНАВЛИВАЕМ ОБНОВЛЕНИЯ СИСТЕМЫ =====

2.1 Необходимо открыть терминал и выполнить такую команду:
sudo apt update

2.2 А потом такую:
sudo apt upgrade


===== 3. УСТАНАВЛИВАЕМ PYTHON3.10 ======

3.1 Выполняем такую команду:
sudo apt install -y build-essential zlib1g-dev libffi-dev libsqlite3-dev libncurses5-dev

3.2 Потом такую:
sudo apt install -y libncursesw5-dev libreadline6-dev libdb5.3-dev

3.3 Еще такую:
sudo apt install -y libgdbm-dev libssl-dev libbz2-dev libexpat1-dev liblzma-dev tk-dev

3.4 Открыть файл в текстовом редакторе:
sudo xed /etc/apt/sources.list

3.5 В конец файла вставить указанную строку, сохранить и выйти:
deb-src http://archive.ubuntu.com/ubuntu/ focal main

3.6 Потом выполнить в терминале такую команду:
sudo apt-get update

3.7 Дальше выполняем указанную команду. Если не началась загрузка, то понижаем версию,
пока на начнется загрузка.
sudo apt-get build-dep python3.10 -y

3.7.1 Понижаем так, если понадобится:
sudo apt-get build-dep python3.9 -y

3.8 Потом переходим по этой ссылке https://www.python.org/downloads/release/python-31011/
Листаем почти в самый низ и находим таблицу под названием Files
Тыкаем на Gzipped source tarball и загружаем

3.9 Как все загрузится, выполняем в терминале такую команду:
cd ~/Downloads

3.10 Выполняем в терминале такую команду:
tar xvf Python-3.10.11.tgz

3.11 Потом такую команду:
cd Python-3.10.11

3.12 Потом такую команду:
./configure --prefix=/opt/python-3.10.11/

3.13 Потом такую команду:
make -j4

3.14 Потом так:
sudo make altinstall


===== 4. УСТАНАВЛИВАЕМ POSTGRESQL =====

4.1 Выполняем такую команду:
sudo apt -y install postgresql

4.2 Выполняем такую команду:
sudo -i -u postgres

4.3 Выполняем такую команду:
psql

4.4 Вводим указанную запись, на месте password - пишем пароль
(запомните его, потом необходимо будет вставить его в файл .env),
только из букв и чисел:
CREATE ROLE harry PASSWORD 'password';

4.5 Вводим указанную запись:
ALTER ROLE harry CREATEROLE CREATEDB LOGIN;

4.4 Вводим указанную запись:
CREATE DATABASE scraper_vkusvill;

4.5 Закрываем терминал


===== 5. УСТАНАВЛИВАЕМ REDIS =====

5.1 Опять открываем терминал и пишем:
sudo apt-get install redis-server -y


===== 6. УСТАНАВЛИВАЕМ CHROME =====

6.1 Устанавливаем браузер chrome в терминале раз:
wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb

6.2 Устанавливаем браузер chrome в терминале два:
sudo dpkg -i --force-depends google-chrome-stable_current_amd64.deb

6.3 Смотрим какая версия chrome установилась: открываем его и три точки в правом верхнем углу -> Настройки -> О chrome (в левой панели, внизу).

6.3 Переходим сюда https://chromedriver.chromium.org/downloads
Смотрим первые цифры и нажимаем на соответствующую версию.
У меня установилась 113 версия chrome, значит я нажимаю на ChromeDriver 113.0.5672.63.

6.4 Потом нажимаем на chromedriver_linux64.zip

6.5 Когда парсер будет скачан, необходимо расспаковать скачанное и файл под
названием chromedriver перенести в папку scraper_vkusvill/scraper


===== 7. ЗАПУСКАЕМ ПАРСЕР =====

7.1. Открываем новый терминал и пишем так:
такую команду:
sudo apt-get install git

7.2 После так:
git clone https://notabug.org/borrya_/scraper_vkusvill

7.3 После так:
cd scraper_vkusvill

7.3 После так:
/opt/python-3.10.11/bin/python3.10 -m venv venv

7.4 После так:
source venv/bin/activate

7.4 После так:
pip install -r requirements.txt

7.5 Запускаем парсер:
python main.py