Инструменты, помогающие в «выскребании» данных
Существует множество программ, с помощью которых можно извлекать массивы данных с веб–сайтов, в т. ч. дополнения для браузеров и определенные веб–сервисы. В зависимости от вашего браузера автоматизировать выполнение некоторых утомительных задач вам помогут такие инструменты, как Readability(который помогает извлекать из веб–страницы текст) или DownThemAll(который помогает загружать несколько файлов одновременно), а приложение для браузера Chrome Scraper extensionбыло разработано специально для извлечения таблиц из веб–сайтов. Такие дополнения, как FireBug(для Firefox, оно же уже включено в Chrome, Safari и IE), позволят вам точно определить, как организован веб–сайт и какие коммуникации осуществляются между вашим браузером и сервером.
Веб–сайт ScraperWikiпоможет вам встроить коды «скребков» в программы, написанные на различных языках, в т. ч. на Python, Ruby и PHP. Если вы хотите начать выскребать данные без утомительного настраивания программ на вашем компьютере, то это именно то место, которое вам нужно посетить. Произвести сбор данных с других веб–сайтов вам могут также помочь такие сервисы, как Google Spreadsheets and Yahoo! Pipes.
Как работает веб–скребок?
Веб–скребки представляют собой небольшие куски кодов, написанные на различных языках программирования, например, на Python, Ruby или PHP. Выбор языка зачастую зависит от того, каким языком пользуется ваше окружение: если кто–либо в вашем ньюсруме или городе уже работает с одним из этих языков, то вам имеет смысл выбрать тот же язык.
Несмотря на то, что на первых порах могут пригодиться и упомянутые выше инструменты «выскребания», действующие по принципу «щелкни мышкой и укажи», истинная сложность в процессе «выскребания» данных с веб–сайта заключается в указании нужных страниц и нужных элементов на этих страницах с тем, чтобы в результате получить именно ту информацию, которая вам необходима. Задача заключается не в изучении программирования, а в понимании структуры конкретного веб–сайта и базы данных.
Показывая веб–сайт, ваш браузер практически всегда будет использовать две технологии: HTTP (это способ общения с сервером, необходимый для запроса конкретных ресурсов, например, документов, изображений или видео) и HTML (это язык, на котором строятся веб–сайты).
Структура любой HTML–страница представляет собой иерархию контейнеров (которые задаются HTML–тэгами). Большой контейнер содержит в себе множество более мелких — например, таблицу, которая делится на более мелкие элементы: ряды и ячейки. Существует множество видов тегов, которые выполняют разные функции — некоторые создают контейнеры, другие оформляют таблицы, изображения или рисунки. Тэги могут иметь дополнительные свойства (например, они могут быть уникальными идентификаторами) и могут делиться на группы, называемые классами, что предоставляет возможность находить и захватывать определенные элементы в документе. Выбор необходимых элементов и извлечение их содержания играют определяющую роль в написании «скребка».
При просмотре элементов веб–страницы все ее содержимое может быть разбито на контейнеры внутри контейнеров.
Для «выскребания» веб–страниц вам необходимо узнать немного побольше о различных типах элементов, которые могут встречаться в HTML–документе. Например, элемент
охватывает всю таблицу, которая содержит в себе элементы (строка таблицы), которые формируют строки, а строки, в свою очередь, имеют элементы
(данные таблицы) для каждой ячейки. Наиболее часто вы будете сталкиваться с элементом
, который, по сути, обозначает какой–либо блок контента. Легче всего понять эти элементы можно, используя панель разработчикавашего браузера, которая позволит вам посмотреть, из чего состоит код, лежащий в основе той или иной части веб–страницы.
Тэги работают как разделители, обозначая начало и конец определенного блока. Например, означает начало выделенного курсивом текста, а тэг означает конец этого блока. Все просто.
Рис 55. The International Atomic Energy Agency’s (IAEA) portal (news.iaea.org)
Пример: сбор информации о происшествиях в ядерной отрасли с использованием кода на языке Python
NEWS — это портал Международного агентства по атомной энергии (МАГАТЭ), посвященный происшествиям в ядерной отрасли по всему миру (и являющийся уверенным кандидатом в члены Клуба роковых названий!). На этой веб–странице происшествия представлены в виде простого, похожего на блог списка, который может быть легко извлечен.
|
Читать дальше