Веб-скраппинг - один из хороших способов сделать правительственную информацию доступной в более значимой и более интерактивной форме, когда мы, как цивилизованное общество, можем взаимодействовать с информацией, а информация может автоматически передаваться нам, когда это необходимо.
Когда мы говорим о правительстве, каждое правительство имеет много информации и информации, представленной в простом информационном формате, и особенно правительство Индии, где цифровизация развивается медленно.
В Индии проживает от 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