Веб-скраппинг - один из хороших способов сделать правительственную информацию доступной в более значимой и более интерактивной форме, когда мы, как цивилизованное общество, можем взаимодействовать с информацией, а информация может автоматически передаваться нам, когда это необходимо.

Когда мы говорим о правительстве, каждое правительство имеет много информации и информации, представленной в простом информационном формате, и особенно правительство Индии, где цифровизация развивается медленно.

В Индии проживает от 17 до 18 процентов мирового населения, и основная часть населения живет в деревнях, и данные об этих деревнях огромны. Отображение всей информации об этих деревнях в интерактивном и значимом виде, безусловно, является проблемой для правительства и будет более сложной задачей для частных лиц и некоммерческих организаций, чтобы представить эту информацию значимым и интерактивным способом с помощью функции push, и эта задача будет быть больше, когда страницы управляются AJAX.

Здесь мы сталкиваемся с той же проблемой: нам нужно отказаться от раздела веб-сайта правительства Индии http://planningonline.gov.in/ReportData.do?ReportMethod=getAnnualPlanReport. На этом веб-сайте есть отчет о планах деятельности всех индийских деревень за 5 финансовый год.

Требуется поэтапная утилизация 1,5 миллиона страниц
Требуется поддержка AJAX

Я индивидуален и использую бессерверный подход для выполнения этой работы, поскольку бессерверная платформа поставляется со значительным объемом бесплатной квоты, а также помогает избежать проблем с сервером, которые помогают сосредоточиться на работе и повысить производительность.

Google Cloud Function + Google Chrome Puppeteer + Google Firebase выглядит лучшим технологическим стеком для решения этой задачи, и благодаря Google за предоставление новейшей поддержки NodeJS LTS в Google Cloud Functions.

Установить NodeJS



Установите инструмент командной строки Google Firebase

npm install -g firebase-tools

Запустите firebase lgoin, чтобы войти в систему через браузер и аутентифицировать инструмент firebase.

Клонировать проект из github

https://github.com/vinaymavi/graminbharat.git

и запустите npm install.

Здесь functions/index.js

файл создает основанную на событиях облачную функцию Google, которая будет выполняться при каждом создании нового документа в коллекции row1 и вставлять новые документы в ту же коллекцию, и этот цикл работает как цикл и продолжается до тех пор, пока не будет получена последняя запись .

Запустите firebase deploy — only functions, чтобы развернуть функцию в облаке Google.

вставить документ в row1 коллекцию

 {‘url’:’URL’,stage:’PLAN_YEAR’}

эта вставка запускает цикл выполнения.

ВНИМАНИЕ! Этот тип цикла выполнения может выполняться бесконечно, пожалуйста, внимательно проверьте свой код перед развертыванием.

Ссылки:
https://firebase.google.com/docs/functions/get-started
https://github.com/GoogleChrome/puppeteer < br /> https://firebase.google.com/docs/cli/
https://github.com/vinaymavi/graminbharat
https://medium.com/@ ebidel / puppeteering-in-firebase-google-cloud-functions-76145c7662bd