Ключевые моменты конструкции гусеницы
Если вы хотите сканировать определенный веб-сайт в пакетном режиме, вам необходимо самостоятельно создать структуру сканера. Прежде чем создавать ее, вам необходимо рассмотреть несколько вопросов: предотвращение блокировки IP, распознавание кода проверки изображения, обработка данных и т. д.
Наиболее распространенным решением для блокировки IP-адресов является использование IP-прокси. Веб-сканер взаимодействует с HTTP-прокси ISPKEY для чрезвычайно быстрого реагирования. Самоуправляемые серверные узлы разбросаны по всей стране, что вполне может помочь в выполнении задачи сканера.
Для относительно простого кода проверки изображения вы можете написать программу распознавания с помощью библиотеки pytesseract. Она может распознавать только простые данные изображения, сделанные при съемке. Для более сложных, таких как скользящая мышь, ползунок, код проверки динамического изображения, вы можете рассмотреть возможность приобретения только платформы кодирования для идентификации.
Что касается обработки данных, если окажется, что полученные вами данные повреждены, решение состоит в том, чтобы определить закономерности их нарушения или получить их через исходный код js. Используйте библиотеку execjs python или другие библиотеки выполнения js для реализации извлечения данных.
Распределенное решение для сканирования
Лучший способ добиться пакетного сканирования данных с большого сайта — поддерживать 4 очереди.
очередь задач URL – в ней хранятся данные URL, которые необходимо захватить.
Очередь исходных URL-адресов — хранит веб-страницы, которые были извлечены, но не были обработаны. Обработка проводится главным образом для проверки необходимости сканирования, повторного сканирования и т. д.
Очередь исходных данных: сохраняет просканированные данные без какой-либо обработки.
Очередь вторичных данных — хранит подлежащие сохранению данные, прошедшие процесс обработки данных.
Вышеуказанные очереди имеют 4 типа процессов для мониторинга и выполнения задач, а именно:
Процесс захвата сканера — прослушивайте очередь задач URL-адресов, захватывайте данные веб-страницы и помещайте захваченные исходные данные в очередь исходных данных.
Процесс обработки URL-адресов: отслеживайте исходную очередь URL-адресов и фильтруйте ненормальные URL-адреса и повторно просматриваемые URL-адреса.
Процесс извлечения данных: отслеживайте исходную очередь данных и извлекайте ключевые данные из исходной очереди данных, включая новые URL-адреса и целевые данные.
Процесс хранения данных: отсортируйте вторичные данные и сохраните их в mongodb.