Читаем Пособие по журналистике данных (ЛП) полностью

NEWS  — это портал Международного агентства по атомной энергии (МАГАТЭ), посвященный происшествиям в ядерной отрасли по всему миру (и являющийся уверенным кандидатом в члены Клуба роковых названий!). На этой веб–странице происшествия представлены в виде простого, похожего на блог списка, который может быть легко извлечен.

Для начала создайте новый «скребок» на языке Python на сайте ScraperWiki, в результате чего вы получите почти пустую область текста, в которой будет находиться только вспомогательный код. В другом окне откройте браузер, откройте там сайт МАГАТЭи затем откройте в этом браузере панель разработчика. В режиме просмотра «Элементы» попытайтесь найти HTML–элементы заголовка одной из новостей. Панель разработчика браузера помогает связывать элементы веб–страницы с лежащим в их основе HTML–кодом.

Изучая эту страницу, вы поймете, что заголовки являются элементами

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

Чтобы преобразовать этот процесс в код, мы должны понять для себя все все его шаги. Чтобы лучше понять, что это за этапы, давайте сыграем в простую игру. В окне ScraperWiki попробуйте написать для себя индивидуальные инструкции по каждому шагу, который вы собираетесь сделать в ходе написания этого «скребка», наподобие пунктов в кулинарном рецепте (отбейте каждую строку хэш–кодом, чтобы дать понять языку Python, что это не настоящий компьютерный код). Например:

# Просмотреть все строки в таблице

# Unicorn не должен выходить за левый край

Постарайтесь быть как можно более точным и не предполагайте, что программа что–либо знает о странице, которую вы пытаетесь «выскрести».

Теперь, когда вы написали свой первый псевдо–код, давайте сравним его с реальным кодом нашего первого «скребка»:

import scraperwiki

from lxml import html

В этой первой части мы импортируем имеющийся функционал из библиотек — кусочки ранее написанных кодов. scraperwiki предоставит нам возможность скачивать веб–сайты, а lxml является инструментом структурного анализа HTML– документов. Хорошая новость: если вы пишете код «скребка» на языке Python с помощью сайта ScraperWiki, эти две строки всегда будут одинаковыми.

url = »http://www–news.iaea.org/EventList.aspx»

doc_text = scraperwiki.scrape(url)

doc = html.fromstring(doc_text)

Далее код вводит имя (переменную): url и в качестве его значения устанавливает URL–адрес страницы МАГАТЭ. Это говорит «скребку» о том, что такой объект существует, и что мы хотим уделить ему внимание. Обратите внимание, что URL–адрес находится в кавычках, так как он является не частью программного кода, а строкой, последовательностью символов.

Затем мы используем переменную url в качестве вводной для функции scraperwiki.scrape. Эта функция будет выполнять некую определенную работу — в данном случае она будет загружать веб–страницу. Когда эта работа будет выполнена, ее результаты будут переданы другой переменной, doc_text. doc_text теперь будет содержать актуальный текст веб–сайта — не тот, который вы видите в браузере при посещении страницы, а исходный код, включая теги. Так как осуществлять структурный анализ такого текста не совсем просто, мы используем другую функцию, html.fromstring, для создания особого представления, в котором мы можем легко находить элементы, так называемую объектную модель документа (document object model, DOM).

for row in doc.cssselect(»#tblEvents tr»):

link_in_header = row.cssselect(»h4 a»).pop()

event_title = link_in_header.text

print event_title

На этом последнем этапе мы используем DOM для поиска каждой строки в нашей таблице и извлечения из нее заголовка события. Здесь используются две новые концепции: петля и выбор элементов (.cssselect). Петля делает то, что и подразумевается ее названием: она обходит список блоков, назначая каждому из них временное имя (в данном случае это строки) и затем выполняет для каждого из них намеченные действия.

Перейти на страницу:

Похожие книги

Справочник путешественника и краеведа
Справочник путешественника и краеведа

Обручев Сергей Владимирович (1891-1965 гг.) известный советский геолог и географ, член-корр. АН СССР. Высоко образованный человек - владел 10 иностранными языками. Сын академика В.А.Обручева, . будущий исследователь Азии, Сибири, Якутии, Арктики, родился в г. Иркутске, получил геологическое образование в Московском университете, закончив который в 1915 г., после недолгой работы на кафедре оказался в Геологическом комитете и был командирован для изучения геологии в Сибирь, на р. Ангара в ее среднем течении. Здесь он провел несколько полевых сезонов. Наиболее известны его экспедиции на Северо-Восток СССР. Совершил одно из значительных географических открытий в северо-восточной Азии - системы хр. Черского - водораздельной части Яно-Индигирского междуречья. На северо-востоке Якутии в Оймяконе им был установлен Полюс холода северного полушария На Среднесибирском плоскогорье - открыт один из крупнейших в мире - Тунгусский угольный бассейн. С.В. Обручев был организатором и руководителем более 40 экспедиций в неосвоенных и трудно доступных территориях России. С 1939 на протяжении более 15 лет его полевые работы были связаны с Прибайкальем и Саяно-Тувинским нагорьем. В честь С.В.Обручева названы горы на Северо-востоке страны, полуостров и мыс на Новой Земле.

Сергей Владимирович Обручев

Приключения / Природа и животные / Путешествия и география / Справочники
Религии народов современной России. Словарь
Религии народов современной России. Словарь

Словарь включает свыше 350 статей религиоведческого, этиологического, социально-психологического, этического, правового и политологического характера, отражающих с разных сторон религиозно-культурную ситуацию в Р оссии последнего десятилетия.Читатель найдет в книге обширную информацию не только о традиционных для Р оссии конфессиях (христианстве, исламе, Р±СѓРґРґРёР·ме и др.), но и о различного СЂРѕРґР° новых религиях и культах (Церковь Объединения, Общество Сознания Кришны, Церковь сайентологии и др.). Большое внимание уделено характеристике особенностей религиозной жизни каждой из наций, народностей и этнических групп, проживающих ныне на территории Р РѕСЃСЃРёР№СЃРєРѕР№ Федерации.Р

Миран Петрович Мчедлов , М. П. Мчедлов

Справочники / Прочая религиозная литература / Эзотерика / Словари и Энциклопедии / Словари
Боевое ремесло
Боевое ремесло

«Боевое ремесло» — так называется книга руководителя клуба «Щитень» Вадима Кондратьева, основателя Зареченской школы боевого фехтования. Для наших смутных времен книга своевременная.Вероятность оказаться в перестрелке астрономически меньше, чем вероятность быть забитым шайкой наркоманов или стать калекой под пьяным ножом, бутылкой или палкой.Как повысить шансы собственного выживания?Как определить тот самый момент, когда пора бить?Как именно бить?Тактика и навыки боя в самом широком спектре применяемого вооружения — от ножа, саперной лопатки и монтировки до палки, бейсбольной биты и меча.Техника Зареченской школы — это не спорт и не загадочное искусство.Это обычное боевое ремесло.

Вадим Вадимович Кондратьев , Вадим Кондратьев

Боевые искусства, спорт / Военная история / Справочники / Боевые искусства / Словари и Энциклопедии