- Необходимо сохранение cookie в сессию для обхода re-captcha
- Все параметры поиска конфигурируются в url кроме радиуса поиска (радиус конфигурируется в cookie)
- На последней странице поиска убирает все объявления с бесконечным поиском не попадающими под поисковый запрос
const remove = (sel) => document.querySelectorAll(sel).forEach(el => el.remove()); remove(".ListingInfiniteDesktop__snippet");
- Скрол страниц идет до первого совпадения объявления с бд. При отсутсвии элементов на странице заканчивает парсинг и заносит результат в бд (добавляет новые посты)
- Все параметры поиска конфигурируются в url
- Скрол страниц идет до первого совпадения объявления с бд
- Make venv
python -m venv venv
- Activate venv
source venv/bin/activate
- Install deps
pip install -r requirements.txt
- Очистите занятые докер контейнеры через docker-station или мануально
sudo docker stop $(sudo docker ps -a -q)
sudo docker rm $(sudo docker ps -a -q)
- Билд и поднятие докера с postgresql и pgAdmin4
docker compose -f docker-compose.yml build
docker compose -f docker-compose.yml up -d
- Чекните IP - адресс поднятого докера для соединения с бд
docker inspect pgdb | grep IPAddress
------------Output-----------------
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAddress": "172.29.0.2",
- Измените ip_address подключения к бд в app.database.config
ip_address = 172.29.0.2
- Создайте таблицы в бд
cd app/database
python -m flask commands create_db
- Подколючиться и просмотреть содержимое
psql postgresql://root:root@172.29.0.2:5432/autoparser
\c autoparser
\dt
SELECT * FROM advertisement;
- PgAdmin:
http://localhost:5050
Parsing Auto.ru to csv
python app/services/auto.py
Подготовьте токен бота
echo "telegram_bot_token=<bot_token>" > /.env
Подключитесь к боту
python app/services/bot.py
Старт парсинга из Drom.ru и Auto.ru в бд
python app/services/sheduler.py
p = Parser()
p.create_session(url = <auto.ru search configured url>)
Edit Selenium webdriver source for moving geckodriver.log in logs folder (by defualt cant change log dir)
Edit in webdriver.py (from webdriver.Firefox) DEFAULT_SERVICE_LOG_PATH to = "logs/geckodriver.log"
yay xvfb
yay Xephyr