Каждый из вас делал это: попав на веб–сайт и увидев интересную таблицу, вы пытались скопировать ее в Excel, чтобы поработать с ней или сохранить для дальнейшего использования. Однако это получается далеко не всегда, бывает и так, что нужная вам информация разбросана по большому количеству сайтов. Копировать данный вручную бывает очень утомительно, поэтому имеет смысл применить для данной процедуры кое–какой код.
Преимущество «выскребания» заключается в том, что вы можете применить этот метод практически на любом сайте — от прогнозов погоды до правительственных расходов, даже если на этом сайте нет API для доступа к сырым данным.
Что можно и что нельзя выскрести
Конечно, в процессе «выскребания» существуют некоторые ограничения. К факторам, затрудняющим «выскребание» данных с сайта, относятся:
Плохо отформатированный HTML–код, содержащий минимальное количество информации или не содержащий ее вовсе, например, старые сайты государственных органов.
Системы аутентификации, созданные для предотвращения автоматического доступа, например, введение кодов (CAPTCHA) или взимание оплаты.
Системы, отслеживающие по файлам cookies браузера, чем занимается пользователь в ходе данной сессии.
Отсутствие полного перечня элементов и возможности поиска с использованием групповых символов.
Блокирование масштабного доступа администраторами сервера.
Кроме того, существуют правовые ограничения: в некоторых странах признаются права на базы данных, которые могут ограничивать ваше право на использование информации, опубликованной в Интернете. В некоторых случаях вы можете проигнорировать эти положения и воспользоваться такой информацией — в зависимости от вашей юрисдикции вы можете обладать особыми правами как журналист. «Выскребание» свободно доступных официальных данных должно быть разрешено, но вы можете захотеть перепроверить их перед публикацией. Коммерческие организации и некоторые НПО менее терпимо относятся к «выскребанию» данных и могут подать жалобу на то, что вы «препятствуете» работе их систем. Использование другой информации может нарушать права физических лиц на неприкосновенность личной жизни и, таким образом, нарушать законы о неприкосновенности личной жизни или профессиональную этику.
Инструменты, помогающие в «выскребании» данных
Существует множество программ, с помощью которых можно извлекать массивы данных с веб–сайтов, в т. ч. дополнения для браузеров и определенные веб–сервисы. В зависимости от вашего браузера автоматизировать выполнение некоторых утомительных задач вам помогут такие инструменты, как Readability(который помогает извлекать из веб–страницы текст) или DownThemAll(который помогает загружать несколько файлов одновременно), а приложение для браузера Chrome Scraper extensionбыло разработано специально для извлечения таблиц из веб–сайтов. Такие дополнения, как FireBug(для Firefox, оно же уже включено в Chrome, Safari и IE), позволят вам точно определить, как организован веб–сайт и какие коммуникации осуществляются между вашим браузером и сервером.
Веб–сайт ScraperWikiпоможет вам встроить коды «скребков» в программы, написанные на различных языках, в т. ч. на Python, Ruby и PHP. Если вы хотите начать выскребать данные без утомительного настраивания программ на вашем компьютере, то это именно то место, которое вам нужно посетить. Произвести сбор данных с других веб–сайтов вам могут также помочь такие сервисы, как Google Spreadsheets and Yahoo! Pipes.
Как работает веб–скребок?
Веб–скребки представляют собой небольшие куски кодов, написанные на различных языках программирования, например, на Python, Ruby или PHP. Выбор языка зачастую зависит от того, каким языком пользуется ваше окружение: если кто–либо в вашем ньюсруме или городе уже работает с одним из этих языков, то вам имеет смысл выбрать тот же язык.
Несмотря на то, что на первых порах могут пригодиться и упомянутые выше инструменты «выскребания», действующие по принципу «щелкни мышкой и укажи», истинная сложность в процессе «выскребания» данных с веб–сайта заключается в указании нужных страниц и нужных элементов на этих страницах с тем, чтобы в результате получить именно ту информацию, которая вам необходима. Задача заключается не в изучении программирования, а в понимании структуры конкретного веб–сайта и базы данных.
Показывая веб–сайт, ваш браузер практически всегда будет использовать две технологии: HTTP (это способ общения с сервером, необходимый для запроса конкретных ресурсов, например, документов, изображений или видео) и HTML (это язык, на котором строятся веб–сайты).
Анатомия веб–страницы