Preview

Труды Института системного программирования РАН

Расширенный поиск

Высокопроизводительный распределенный веб-скрапер

https://doi.org/10.15514/ISPRAS-2021-33(3)-7

Аннотация

За последнее десятилетие Интернет стал гигантским и богатейшим источником данных. Данные используются для извлечения знаний путем выполнения машинного анализа. Чтобы выполнить интеллектуальный анализ данных веб-информации, данные должны быть извлечены из источника и помещены в аналитическое хранилище. Это ETL-процесс. Разные веб-источники имеют разные способы доступа к своим данным: либо API по протоколу HTTP, либо парсинг исходного кода HTML. Статья посвящена подходу к высокопроизводительному извлечению данных из источников, не имеющих API для доступа к данным. Отличительными особенностями предлагаемого подхода являются: балансировка нагрузки, двухуровневая подсистема данных и отделение процесса загрузки файлов от процесса парсинга. Подход реализован в решении со следующими технологиями: Docker, Kubernetes, Scrapy, Python, MongoDB, Redis Cluster и СephFS. Результаты тестирования решения также описаны в этой статье.

Об авторах

Денис Сергеевич ЭЙЗЕНАХ
Санкт-Петербургский Политехнический университет Петра Великого
Россия

Cтудент



Антон Сергеевич РАМЕЙКОВ
Санкт-Петербургский Политехнический университет Петра Великого
Россия

Cтудент



Игорь Валерьевич НИКИФОРОВ
Санкт-Петербургский Политехнический университет Петра Великого
Россия

кандидат технических наук, доцент Высшей школы программной инженерии Института компьютерных наук и технологий



Список литературы

1. Deepak Kumar Mahto, Lisha Singh. A dive into Web Scraper world. In Proc. of the 3rd International Conference on Computing for Sustainable Global Development (INDIACom), 2016, pp. 689-693.

2. Web Cralwer. Available at: https://webbrowsersintrodu ction.com/.

3. Momin Saniya Parvez, Khan Shaista Agah Tasneem, Shivankar Sneha Rajendra, Kalpana R. Bodke. Analysis of Different Web Data Extraction Techniques. In Proc. of the International Conference on Smart City and Emerging Technology (ICSCET), 2018, pp. 1-7.

4. Anand V. Saurkar, Kedar G. Pathare, Shweta A. Gode. An Overview On Web Scraping Techniques and Tools. International Journal on Future Revolution in Computer Science & Communication Engineering, vol. 4, no. 4, 2018, pp. 363-367.

5. Rohmat Gunawan, Alam Rahmatulloh, Irfan Darmawan, Firman Firdaus. Comparison of Web Scraping Techniques: Regular Expression, HTML DOM and Xpath. In Proc. of the International Conference on Industrial Enterprise and System Engineering, 2018, pp. 283-287.

6. Isam Mashhour Al Jawarneh, Paolo Bellavista et al. Container Orchestration Engines: A Thorough Functional and Performance Comparison. In Proc. of the 2019 IEEE International Conference on Communications (ICC), 2019, pp. 1-6.

7. CNCF certificate. Available at: https://www.cncf.io/certification/software-conformance/.

8. S. Vestman. Cloud application platform - Virtualization vs Containerization. Student Thesis. Blekinge Institute of Technology, Sweden, 2017, 45 p.

9. Distributed Frontera: Web crawling at scale. Available at: https://www.zyte.com/blog/distributed-frontera-web-crawling-at-large-scale/.

10. Frontera documentation. Available: at https://frontera.r eadthedocs.io/en/latest/.

11. Scrapy-Redis documentation. Available at: https://scrapy-redis.readthedocs.io/en/v0.6.x/readme.html#.

12. Fulian Yin, Xiating He, Zhixin Liu. Research on Scrapy-Based Distributed Crawler System for Crawling Semi-structure Information at High Speed. In Proc. of the 2018 IEEE 4th International Conference on Computer and Communications (ICCC), 2018, pp. 1356-1359.

13. Scrapy-Cluster documentation. Available at: https://scrapy-cluster.readthedocs.io/en/latest/.

14. Kafka documentation. Intro. Available at: https://kafka.apache.org/documentation/#introduction.

15. Kafka official documentation. Basic_ops_modify_topic. Available: at https://kafka.apache.org/documentation.html #basic_ops_modify_topic.

16. Scrapy-Cluster documentation. Core Concepts. Available at: https://scrapy-cluster.readthedocs.io/en/latest/topics/introduction/overview.html.

17. Scrapyd documentation. Available at: https://scrapyd.re adthedocs.io/en/stable/.

18. Official Scrapy framework web-site. List of companies using Scrapy. Available at: https://scrapy.org/companies/.

19. Regina O. Obe, Leo S. Hsu. PostgreSQL: Up and Running: A Practical Guide to the Advanced Open Source Database. 3rd Edition, O'Reilly Media, Inc., 2017, 314 p.

20. Deng Kaiying, Chen Senpeng, Deng Jingwei. On optimisation of web crawler system on Scrapy framework. International Journal of Wireless and Mobile Computing, vol. 18, no. 4, 2020, pp. 332-338.

21. Jia-Yow Weng, Chao-Tung Yang. Chih-Hung Chang. The Integration of Shared Storages with the CephFS. In Proc. of the 2018 IEEE 42nd Annual Computer Software and Applications Conference (COMPSAC), 2019. pp. 93-98

22. Shannon Bradshaw, Eoin Brazil, Kristina Chodorow. Customers who viewed MongoDB: The Definitive Guide: Powerful and Scalable Data Storage. 3rd edition, O'Reilly Media, Inc., 2019, 514 p.

23. Abutalib Aghayev, Sage Weil et al. File systems unfit as distributed storage backends: lessons from 10 years of Ceph evolution. In Proc. of the 27th ACM Symposium on Operating Systems, 2019. pp. 353–369

24. N. Voinov, K. Rodriguez Garzon et al. Big data processing system for analysis of GitHub events. In Proc. of the 22nd International Conference on Soft Computing and Measurements, 2019, pp. 187-190.


Рецензия

Для цитирования:


ЭЙЗЕНАХ Д.С., РАМЕЙКОВ А.С., НИКИФОРОВ И.В. Высокопроизводительный распределенный веб-скрапер. Труды Института системного программирования РАН. 2021;33(3):87-100. https://doi.org/10.15514/ISPRAS-2021-33(3)-7

For citation:


EYZENAKH D., RAMEYKOV A., NIKIFOROV I. High Performance Distributed Web-Scraper. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2021;33(3):87-100. https://doi.org/10.15514/ISPRAS-2021-33(3)-7



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)