Skip to content
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.

Commit 6f4c8fd

Browse files
authoredJan 12, 2025
Merge pull request #1 from ARMrus/docker_srv_dev
Docker srv dev
2 parents a60619b + 414ee50 commit 6f4c8fd

File tree

4 files changed

+118
-5
lines changed

4 files changed

+118
-5
lines changed
 

‎.gitignore

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
# created by virtualenv automatically
2-
*
2+
.secret.txt

‎Dockerfile

+82
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
FROM python:3 AS build
2+
3+
LABEL developer="Duff89"
4+
LABEL maintainer="armrus.org"
5+
6+
# Installing required build packages
7+
RUN set -ex && \
8+
apt-get update && \
9+
apt-get autoremove -y && \
10+
rm -rf /var/lib/apt/lists/*
11+
12+
# Set timezone
13+
ENV TZ="Europe/Moscow"
14+
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && \
15+
echo $TZ > /etc/timezone
16+
17+
ENV PATH="/usr/local/bin:$PATH"
18+
ENV LANG="C.UTF-8"
19+
20+
COPY requirements.txt /parse_avito/requirements.txt
21+
# COPY AvitoParser.py /parse_avito/AvitoParser.py
22+
COPY custom_exception.py /parse_avito/custom_exception.py
23+
COPY db_service.py /parse_avito/db_service.py
24+
COPY lang.py /parse_avito/lang.py
25+
COPY locator.py /parse_avito/locator.py
26+
COPY parser_cls.py /parse_avito/parser_cls.py
27+
COPY settings.ini /parse_avito/settings.ini
28+
COPY user_agent_pc.txt /parse_avito/user_agent_pc.txt
29+
COPY xlsx_service.py /parse_avito/xlsx_service.py
30+
COPY entrypoint.sh /parse_avito/entrypoint.sh
31+
RUN chmod +x /parse_avito/entrypoint.sh
32+
33+
# будем собирать из параметров для создания контейнера
34+
ENV URL_AVITO="https://www.avito.ru/sankt-peterburg/tovary_dlya_kompyutera?cd=1&q=%%D0%%B2%%D0%%B8%%D0%%B4%%D0%%B5%%D0%%BE%%D0%%BA%%D0%%B0%%D1%%80%%D1%%82%%D0%%B0+rtx"
35+
ENV CHAT_ID_TG=0
36+
ENV TG_TOKEN=""
37+
ENV NUM_ADS_AVITO=3
38+
ENV FREQ_AVITO=60
39+
ENV KEYS_AVITO=""
40+
ENV KEYS_BLACKS_AVITO=""
41+
ENV MAX_PRICE_AVITO=200000000
42+
ENV MIN_PRICE_AVITO=0
43+
ENV GEO_AVITO=""
44+
ENV PROXY_AVITO=""
45+
ENV PROXY_CHANGE_IP_AVITO=""
46+
ENV NEED_MORE_INFO_AVITO=1
47+
ENV DEBUG_MODE_AVITO=1
48+
ENV FAST_SPEED_AVITO=1
49+
ENV MAX_VIEW_AVITO=0
50+
ENV KEYS_BLACK_AVITO=""
51+
52+
53+
WORKDIR /parse_avito
54+
RUN pip install -r requirements.txt
55+
RUN apt-get update && apt-get install -y \
56+
fonts-liberation \
57+
libasound2 \
58+
libatk-bridge2.0-0 \
59+
libatk1.0-0 \
60+
libatspi2.0-0 \
61+
libcups2 \
62+
libdbus-1-3 \
63+
libdrm2 \
64+
libgbm1 \
65+
libgtk-3-0 \
66+
# libgtk-4-1 \
67+
libnspr4 \
68+
libnss3 \
69+
libwayland-client0 \
70+
libxcomposite1 \
71+
libxdamage1 \
72+
libxfixes3 \
73+
libxkbcommon0 \
74+
libxrandr2 \
75+
xdg-utils \
76+
libu2f-udev \
77+
libvulkan1
78+
RUN wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb
79+
RUN dpkg -i --force-depends google-chrome-stable_current_amd64.deb
80+
RUN apt --fix-broken install
81+
# ENTRYPOINT ["python", "./parser_cls.py"]
82+
ENTRYPOINT ["sh", "entrypoint.sh"]

‎README.md

+16-4
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
- Установка количества проверяемых страниц
1313
- Установка паузы между повторами
1414
- Уведомление в telegram как опция (может быть несколько получателей), также результат сохраняется в result/keyword*.xlsx и выводится в окно
15-
- Хранение уже просмотренных объявлений, т.е. дубли игнорируются
15+
- Хранение уже просмотренных объявлений, т.е. дубли игнорируются (если на них не поменялась цена)
1616
- Обнаружения изменения цены для уже просмотренных объявлений
1717
- Автоматический обход бана по IP со стороны Авито
1818
- Присылает только объявления, которые подходят под нужные параметры (слова-ключи, стоп-слова, гео, цена, макс. кол-во просмотров), если они указаны конечно
@@ -22,6 +22,8 @@
2222
### Обзор возможностей и другие детали:
2323
[youtube](https://youtu.be/q3BlBiLId40) - обзор последней версии, настоятельно рекомендую посмотреть
2424

25+
[youtube](https://youtu.be/CjFQ8zCG1Z0) - подробная инструкция как это всё запустить на удаленном сервере (vps)
26+
2527
[youtube playlist](https://www.youtube.com/playlist?list=PLK9kK8z0fpqxPakGZvxo7y6HtCBTYihUF) - плейлист о том, как это создавалось
2628

2729
### Прокси
@@ -31,7 +33,7 @@
3133
При покупке обязательно выбирайте страну "Россия"
3234

3335
### Установка
34-
Если Ваша платформа - Windows 10 или 11, можете использовать портативную версию [скачать](https://disk.yandex.by/d/PdX-1By1l0zCAA) (обновлено 15.12.2024), распаковать архив, запустить parse_avito.exe). Первый запуск может длиться около 1 минуты - это нормально. В этом случае никаких зависимостей устанавливать не нужно.
36+
Если Ваша платформа - Windows 10 или 11, можете использовать портативную версию [скачать](https://disk.yandex.by/d/PdX-1By1l0zCAA) (обновлено 15.12.2024), распаковать архив, запустить parse_avito.exe от имени администратора). Первый запуск может длиться около 1 минуты - это нормально. В этом случае никаких зависимостей устанавливать не нужно.
3537

3638

3739
Для работы требуется Python 3.11+. Скопируйте проект и установите зависимости:
@@ -71,16 +73,26 @@
7173
- При нажатии на кнопку Test в скрипте, Вам должно прийти сообщение. Если нет, перезагрузите скрипт и попробуйте еще раз
7274

7375

76+
### Docker
77+
```bash
78+
sudo docker build -t avito_parser:v0.1 .
79+
```
80+
```bash
81+
sudo docker run -it -e URL_AVITO="https://www.avito.ru/all?q=kawasaki+1000sx https://www.avito.ru/all?q=kawasaki+ninja+1000" -e TG_TOKEN="XXXXXXXXXX:XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" -e CHAT_ID_TG="-XXXXXXXXXX" -e FAST_SPEED_AVITO=250 -e MAX_VIEW_AVITO=4 -e MIN_PRICE_AVITO=700000 -e KEYS_AVITO="" --mount type=bind,source=/home/alex/AvitoDataKava,destination=/parse_avito/result avito_parser:v0.1 avito
82+
83+
```
84+
85+
7486
### Проблемы
7587

7688
При обнаружении ошибок, пишите в https://github.com/Duff89/parser_avito/issues.
7789
Пожалуйста, указывайте не только ошибку, но и информацию о Вашей ОС, версию скрипта, способ запуска и т.д.
78-
Для прямой связи с автором, пишите: sergeichopolovich1989@gmail.com
90+
Для прямой связи с автором, пишите: sergeichopolovich1989@gmail.com.
91+
Письма с текстом: "у меня не запускается" будут игнорироваться, для этого есть issues
7992

8093

8194
### Поддержка развития проекта
8295

8396
Ваша поддержка очень важна для дальнейшего и регулярного развития данного скрипта.
8497
Поддержать можно по ссылке: https://yoomoney.ru/to/410014382689862
8598
или простым переводом 2204 1201 0103 5539. Заранее спасибо
86-

‎entrypoint.sh

+19
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
#!/bin/sh
2+
sed -i "s|url = .*|url = $URL_AVITO|1" settings.ini
3+
sed -i "s|chat_id = .*|chat_id = $CHAT_ID_TG|1" settings.ini
4+
sed -i "s|tg_token = .*|tg_token = $TG_TOKEN|1" settings.ini
5+
sed -i "s|num_ads = .*|num_ads = $NUM_ADS_AVITO|1" settings.ini
6+
sed -i "s|freq = .*|freq = $FREQ_AVITO|1" settings.ini
7+
sed -i "s|keys = .*|keys = $KEYS_AVITO|1" settings.ini
8+
sed -i "s|keys_blacks = .*|keys_blacks = $KEYS_BLACKS_AVITO|1" settings.ini
9+
sed -i "s|max_price = .*|max_price = $MAX_PRICE_AVITO|1" settings.ini
10+
sed -i "s|min_price = .*|min_price = $MIN_PRICE_AVITO|1" settings.ini
11+
sed -i "s|geo = .*|geo = $GEO_AVITO|1" settings.ini
12+
sed -i "s|proxy = .*|proxy = $PROXY_AVITO|1" settings.ini
13+
sed -i "s|proxy_change_ip = .*|proxy_change_ip = $PROXY_CHANGE_IP_AVITO|1" settings.ini
14+
sed -i "s|need_more_info = .*|need_more_info = $NEED_MORE_INFO_AVITO|1" settings.ini
15+
sed -i "s|debug_mode = .*|debug_mode = $DEBUG_MODE_AVITO|1" settings.ini
16+
sed -i "s|fast_speed = .*|fast_speed = $FAST_SPEED_AVITO|1" settings.ini
17+
sed -i "s|max_view = .*|max_view = $MAX_VIEW_AVITO|1" settings.ini
18+
sed -i "s|keys_black = .*|keys_black = $KEYS_BLACK_AVITO|1" settings.ini
19+
python parser_cls.py

0 commit comments

Comments
 (0)
Please sign in to comment.