Парсер для difc.ae
Программа собирает все данные о компаниях и сохраняет их в базу данных MongoDB
При анализе сайта выяснилось, что существует страница, на которой находятся ссылки на все компании: https://www.difc.ae/public_register_1.xml
Для того чтобы получить ссылки из xml используется SitemapSpider
и правила:
sitemap_urls = ['https://www.difc.ae/public_register_1.xml']
sitemap_rules = [
('/public-register/', 'parse_company')
]
Далее, при анализе, выесняется Xpath путь до div
контейнера в котором хранится нужная
информация о компании.
Далее замечаем, что относительно самих контейнеров с информацией, XPath до ключа и значения одинаков у всех извлекаемых контейнеров:
Путь до ключа или занчения относительно контейнера, который их содержит тоже везде одинаков:
Ключ: ./div[1]//p//text()
Значение: ./div[2]//p//text()
Таким образом мы можем гибко извлекать все данные компаний не пропустив
ни одного значения. А в случае если меняется XPath у сайта, то поменять
его в config.py
Установите Python пакеты из requirements.txt
:
pip install -r requirements.txt
Поменяйте значения переменных в файле config.py
на свои для работы с парсером и базой данных.
Запустите скрипт для сбора информации компаний из Dubai International Financial Centre public registry:
python start.py
В документации Scrapy настоятельно рекомендуется устанавливать его в специальной виртуальной среде во избежание конфликтов с пакетами вашей системы.
python3.8 -m venv scrapy_env
source scrapy_env/bin/activate
После активации виртуальной среды можете приступать к установке проекту как было описанно раннее.