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

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