Под этим странным термином скрывается достаточно простая идея - брать информацию с готовых источников, как правило с WEB-ресурсов. В наше время многие площадки автоматически собирают контент. Например, qa.ru явно парсит StackOverflow, Яндекс новости парсят популярные новостные издания, в общем, примеров очень много.
Итак, если вам интересно попробовать себя в этом деле, то ниже приведены технологии, которые вам пригодятся.
Внимание! Редакция NET Watcher против незаконного использования или присваивания чужой интеллектуальной собственности. Поступайте с умом и знанием юридической стороны вопроса.
Язык программирования
О, да, очень банально, не правда ли? Но тем не менее, от этого никуда не деться - этот язык станет вашим главным рабочим инструментом. Я даже скажу больше: это должен быть конкретный высокоуровневый язык, крайне желательно, чтобы он мог работать на серверной части. От C# и Java и до NodeJS и PHP, по-сути, вы не особо ограниченны в выборе.
Понимание HTML, селекторов и DOM
Тут все очень просто: если вы работаете с сайтом и хотите отыскать в нем нужную информацию, то нужно понимать, как эта информация подается на странице. Селекторы представляют иерархию элементов, например, такой селектор:
h1#name > div *
Говорит о том, что нам нужны все элементы внутри блока, который внутри заголовка с id "name". Не думаете, что это сложно, экспресс курс HTML+CSS сделает свое дело. Так же есть альтернатива такому подходу, которая называется XPath и напоминает более станадртный путь файловой системы.
Регулярные выражения
Настоящий язык текстовых запросов, который поддерживается множеством языков программирования. Некоторые данные могут содержаться не в самой разметке, а, например, в скрипте, тогда прошлый пункт нам ничем не поможет. Еще может быть так, что нам нужны данные конкретного формата, а не что попало. Например, вам нужен IP адрес, вы можете написать такое регулярное выражение:
\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}
Причем, это далеко не единственный вариант. РВ дают своебобразную свободу, но и злоупотреблять ими не очень хорошо. Используйте их и селекторы вместе, в зависимости от целей.
Работа с динамичными данными
Не все данные приходят на сайт в тот момент, когда вы получаете его код. Никто не отменял Ajax, который потребует иного подхода. Angular, React.js и подобные библиотеки и фреймворки тоже подпортят вам жизнь, если вы ожидаете получать все данные в открытом виде, "как есть". Изучайте и активно используйте нативные средства диагностики браузера, а так же стороннее ПО, как Fiddler и Postman. Все это поможет вам отследить нужные запросы и данные, которые вы и будите отправлять для получение динамичных данных.
Понимание сути запросов и требований сервера
Сервер прекрасно понимает с какого IP и как часто приходят запросы, он может не хотеть, чтобы его парсили, а может просто защищаться от слишком настойчивых запросов. Бывает, что неверно подобранные UserAgent или куки, приводили к отказы браузера. Нужно понимать эти механики, то как строится запрос (Request) и ответ на него (Response), то, какие данные должны отправлять, какие таймауты лучше выдерживать. Возможно, вам придется использовать прокси или VPN, а может быть и так, что вам пригодится WebDriver, чтобы эмулировать загрузку в браузере.