ΠΡΠΏΠΎΠ»ΡΠ·ΡΡ ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Scrapy Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π½Π°ΠΏΠΈΡΠ°ΡΡ ΠΊΠΎΠ΄ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ Π΄Π»Ρ ΠΏΠΎΠ»ΡΡΠ΅Π½ΠΈΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΠΈ ΠΎ ΡΠΎΠ²Π°ΡΠ°Ρ
ΠΈΠ½ΡΠ΅ΡΠ½Π΅Ρ-ΠΌΠ°Π³Π°Π·ΠΈΠ½Π° ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ ΠΏΠΎ Π·Π°ΡΠ°Π½Π΅Π΅ Π·Π°Π΄Π°Π½Π½ΠΎΠΌΡ ΡΠ°Π±Π»ΠΎΠ½Ρ,
Π΄Π°Π½Π½ΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΡΡ Π² Π²ΠΈΠ΄Π΅ ΡΠΏΠΈΡΠΊΠ° ΡΠ»ΠΎΠ²Π°ΡΠ΅ΠΉ (ΠΎΠ΄ΠΈΠ½ ΡΠΎΠ²Π°Ρ - ΠΎΠ΄ΠΈΠ½ ΡΠ»ΠΎΠ²Π°ΡΡ) ΠΈ ΡΠΎΡ
ΡΡΠ½ΠΈΡΡ Π² ΡΠ°ΠΉΠ» Ρ ΡΠ°ΡΡΠΈΡΠ΅Π½ΠΈΠ΅ΠΌ .json
- ΠΡΠ°ΡΠΈΠ²ΠΎΠ΅ ΠΈ ΡΠ΄ΠΎΠ±Π½ΠΎΠ΅ Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅:
- Π ΠΊΠΎΠ½ΡΠΎΠ»Ρ Π²ΡΠ²ΠΎΠ΄ΠΈΡΡΡ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΠΎΠ²Π°Ρ ΠΏΠΎ ΠΊΠΎΡΠΎΡΠΎΠΌΡ ΡΠΎΠ±ΠΈΡΠ°Π΅ΡΡΡ ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ
- ΠΡΠΎΠ³ΡΠ΅ΡΡΠ±Π°ΡΡ
- Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΊΠΈ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ΅ ΠΈ ΡΡΡΠ»ΠΊΠ° Π½Π° ΡΡΡΠ°Π½ΠΈΡΡ ΡΠΎΡ
ΡΠ°Π½ΡΡΡΡΡ Π² ΡΠ°ΠΉΠ»Π΅
error_log.txt - ΠΡΠ²ΠΎΠ΄ΠΈΡΡΡ Π²ΡΠ΅ΠΌΡ Π²ΡΠΏΠΎΠ»Π½Π΅Π½ΠΈΡ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΌΡ
- ΠΠ°ΡΡΡΠΎΠ΅Π½Ρ ΠΏΡΠΎΠΊΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΠ°,
ScrapyΠ±ΡΠ΄Π΅Ρ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΌ ΠΎΠ±ΡΠ°Π·ΠΎΠΌ Π²ΡΠ±ΠΈΡΠ°ΡΡ ΠΏΡΠΎΠΊΡΠΈ ΠΈΠ· ΡΠΏΠΈΡΠΊΠ° ΠΏΡΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Π·Π°ΠΏΡΠΎΡΠ΅, ΡΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΎΠ±ΠΎΠΉΡΠΈ ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ΠΈΡ ΠΈ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ. - ΠΠ°ΠΆΠ΄ΡΠΉ Π·Π°ΠΏΡΠΎΡ ΡΠΎΠ΄Π΅ΡΠΆΠΈΡ ΡΠ»ΡΡΠ°ΠΉΠ½ΡΠΉ
User-AgentΠΈRefererΠΈΠ· ΡΠΏΠΈΡΠΊΠ°USER_AGENT_LIST. ΠΡΠΎ ΠΏΠΎΠΌΠΎΠΆΠ΅Ρ ΠΈΠ·Π±Π΅ΠΆΠ°ΡΡ Π±Π»ΠΎΠΊΠΈΡΠΎΠ²ΠΊΠΈ ΠΏΡΠΎΠΊΡΠΈ ΠΈ ΡΠ΄Π΅Π»Π°Π΅Ρ ΠΏΠ°ΡΡΠΈΠ½Π³ Π±ΠΎΠ»Π΅Π΅ Π½Π°Π΄Π΅ΠΆΠ½ΡΠΌ. - ΠΡΠΏΠΎΠ»ΡΠ·ΠΎΠ²Π°Π½
ItemLoader, ΠΊΠΎΡΠΎΡΡΠΉ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ΅Ρ ΡΡΡΡΠΊΡΡΡΠΈΡΠΎΠ²Π°ΡΡ ΠΈΠ·Π²Π»Π΅ΡΠ΅Π½ΠΈΠ΅ Π΄Π°Π½Π½ΡΡ ΠΈΠ· ΡΡΡΠ°Π½ΠΈΡ ΠΈ ΡΠΌΠ΅Π½ΡΡΠΈΡΡ Π΄ΡΠ±Π»ΠΈΡΠΎΠ²Π°Π½ΠΈΠ΅ ΠΊΠΎΠ΄Π°. - ΠΠ±ΡΠ°Π±ΠΎΡΠΊΠ° ΠΈΡΠΊΠ»ΡΡΠ΅Π½ΠΈΠΉ
- ΠΠ°Π³ΠΈΠ½Π°ΡΠΈΡ
- Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅
DockerΠ½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ:https://www.docker.com/get-started - Π‘ΠΊΠ»ΠΎΠ½ΠΈΡΡΠΉΡΠ΅ git-ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΉ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π½Π° ΡΠ²ΠΎΠΉ ΠΊΠΎΠΌΠΏΡΡΡΠ΅Ρ:
git clone https://github.com/DxTea/scrapy_parser.git - ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΊΠΎΡΠ½Π΅Π²ΡΡ ΠΏΠ°ΠΏΠΊΡ ΠΏΡΠΎΠ΅ΠΊΡΠ° Π² ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΎΠΉ ΡΡΡΠΎΠΊΠ΅ ΠΈΠ»ΠΈ ΡΠ΅ΡΠΌΠΈΠ½Π°Π»Π΅.
- Π‘ΠΎΠ±Π΅ΡΠΈΡΠ΅ ΠΎΠ±ΡΠ°Π· Docker ΠΈΠ· Dockerfile, Π²ΡΠΏΠΎΠ»Π½ΠΈΠ² ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
docker build -t apteka_spider . - ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠΉ ΡΠ±ΠΎΡΠΊΠΈ ΠΎΠ±ΡΠ°Π·Π° Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅Ρ:
docker run apteka_spider
- Π‘ΠΊΠΎΠΏΠΈΡΡΠΉΡΠ΅
URLΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΡ. - ΠΡΠΊΡΠΎΠΉΡΠ΅
ΠΊΠΎΠΌΠ°Π½Π΄Π½ΡΡ ΡΡΡΠΎΠΊΡ (ΡΠ΅ΡΠΌΠΈΠ½Π°Π»)Π½Π° Π²Π°ΡΠ΅ΠΌ ΠΊΠΎΠΌΠΏΡΡΡΠ΅ΡΠ΅. - ΠΠ²Π΅Π΄ΠΈΡΠ΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ
git clone https://github.com/DxTea/scrapy_parser.git - ΠΠ΅ΡΠ΅ΠΉΠ΄ΠΈΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΡ Ρ ΠΊΠ»ΠΎΠ½ΠΈΡΠΎΠ²Π°Π½Π½ΡΠΌ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠ΅ΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΡ
cd scrapy_parser - Π£Π±Π΅Π΄ΠΈΡΠ΅ΡΡ, ΡΡΠΎ Ρ Π²Π°Ρ ΡΡΡΠ°Π½ΠΎΠ²Π»Π΅Π½
Python Π²Π΅ΡΡΠΈΠΈ 3.11 - Π£ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΡΠ΅ Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈ
pip install -r requirements.txt - ΠΠ½ΡΡΡΠΈ ΠΏΠ°ΠΏΠΊΠΈ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ Π·Π°ΠΏΡΡΡΠΈΡΠ΅ ΠΏΠ°ΡΡΠ΅Ρ Ρ ΠΏΠΎΠΌΠΎΡΡΡ ΠΊΠΎΠΌΠ°Π½Π΄Ρ:
python apteka_spider.py - ΠΠΎΡΠ»Π΅ ΡΡΠΏΠ΅ΡΠ½ΠΎΠ³ΠΎ Π·Π°Π²Π΅ΡΡΠ΅Π½ΠΈΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π°, ΡΠ΅Π·ΡΠ»ΡΡΠ°ΡΡ Π±ΡΠ΄ΡΡ ΡΠΎΡ
ΡΠ°Π½Π΅Π½Ρ Π² JSON-ΡΠ°ΠΉΠ»Π΅, ΠΊΠΎΡΠΎΡΡΠΉ Π²Ρ Π½Π°ΠΉΠ΄Π΅ΡΠ΅ Π² ΠΏΠ°ΠΏΠΊΠ΅
parsed_data - Π ΡΠ»ΡΡΠ°Π΅ Π²ΠΎΠ·Π½ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡ ΠΎΡΠΈΠ±ΠΎΠΊ Π²ΠΎ Π²ΡΠ΅ΠΌΡ ΠΏΠ°ΡΡΠΈΠ½Π³Π°, ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ ΠΎΠ± ΠΎΡΠΈΠ±ΠΊΠ°Ρ
Π±ΡΠ΄Π΅Ρ Π·Π°Π»ΠΎΠ³ΠΈΡΠΎΠ²Π°Π½Π° Π² ΡΠ°ΠΉΠ»
error_log.txtΠ² ΠΏΠ°ΠΏΠΊΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠΎΠΌ. - Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ Π΄Π»Ρ ΠΏΠ°ΡΡΠΈΠ½Π³Π°, Π²Π°ΠΌ Π½ΡΠΆΠ½ΠΎ Π±ΡΠ΄Π΅Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΡΠΏΠΈΡΠΎΠΊ
CATEGORIESΠ² ΠΊΠ»Π°ΡΡΠ΅AptekaSpider. Π ΡΡΠΎΠΌ ΡΠΏΠΈΡΠΊΠ΅ Π²Ρ ΠΌΠΎΠΆΠ΅ΡΠ΅ ΡΠΊΠ°Π·Π°ΡΡ Π½ΠΎΠ²ΡΠ΅ ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΈ ΠΈΠ»ΠΈ ΡΠ΄Π°Π»ΠΈΡΡ ΡΡΡΠ΅ΡΡΠ²ΡΡΡΠΈΠ΅, Π° ΡΠ°ΠΊΠΆΠ΅ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ URL-Π°Π΄ΡΠ΅ΡΠ° ΠΊΠ°ΡΠ΅Π³ΠΎΡΠΈΠΉ. - Π§ΡΠΎΠ±Ρ ΠΈΠ·ΠΌΠ΅Π½ΠΈΡΡ ΠΏΡΠΎΠΊΡΠΈ ΡΠ΅ΡΠ²Π΅ΡΡ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠΎ Π²Π½Π΅ΡΡΠΈ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΡ Π²
ROTATING_PROXY_LISTΠ² ΡΠ°ΠΉΠ»Π΅settings.py.