Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Скрапинг веб-сайтов с помощью Python

Покупка
Артикул: 712427.01.99
Доступ онлайн
649 ₽
В корзину
Изучите методы скрапинга и краулинга веб-сайтов, чтобы получить доступ к неограниченному объему данных в любом уголке Интернета в любом формате. С помощью этого практического руководства вы узнаете, как использовать скрипты Python и веб-API, чтобы одновременно собрать и обработать данные с тысяч или даже миллионов веб-страниц. Идеально подходящая для программистов, специалистов по безопасности и веб-администраторов, знакомых с языком Python, эта книга знакомит не только с основными принципами работы веб-скраперов, но и углубляется в более сложные темы, такие как анализ сырых данных или использование скраперов для тестирования интерфейса веб-сайта Примеры программного кода, приведенные в книге, помогут разобраться в этих принципах на практике.
Митчелл, Р. Скрапинг веб-сайтов с помощью Python / Р. Митчелл ; пер. с англ. А. В. Груздева. - Москва : ДМК Пресс, 2016. - 280 с. - ISBN 978-5-97060-223-2. - Текст : электронный. - URL: https://znanium.ru/catalog/product/1027754 (дата обращения: 22.11.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов
Скрапинг веб-сайтов с помощью Python

Изучите методы скрапинга и краулинга веб-сайтов, чтобы получить доступ 
к неограниченному объему данных в любом уголке Интернета в любом 
формате. С помощью этого практического руководства вы узнаете, как 
использовать скрипты Python и веб-API, чтобы одновременно собрать и 
обработать данные с тысяч или даже миллионов веб-страниц.
Идеально подходящая для программистов, специалистов по безопасности и 
веб-администраторов, знакомых с языком Python, книга знакомит не только 
с основными  принципами работы веб-скраперов, но и углубляется в более 
сложные темы, такие, как анализ сырых данных или использование скраперов для тестирования интерфейса веб-сайта. Примеры программного кода, 
приведенные в книге, помогут разобраться в этих принципах на практике.

Интернет-магазин:
www.dmkpress.com
Книга – почтой: 
orders@alians-kniga.ru
Оптовая продажа:
“Альянс-книга”
тел.(499)782-38-89 
books@alians-kniga.ru
www.дмк.рф

Прочитав эту книгу, вы научитесь:
• 
выполнять парсинг сложных HTML страниц;

• 
сканировать веб-страницы и сайты;

• 
работать с API;

• 
применять несколько методов хранения собранных данных;

• 
скачивать, обрабатывать и извлекать данные из документов;

• 
использовать инструменты и методы для очистки плохо                  
отформатированных данных;

• 
читать и записывать естественные языки;

• 
выполнять краулинг с использованием регистрационных форм;

• 
выполнять скрапинг Javascript-кода;

• 
обрабатывать изображения и распознавать текст.

Скрапинг
веб-сайтов

«Инструменты и примеры, приведенные в этой книге, позволили мне легко 

автоматизировать несколько повторяющихся задач, высвободив время 

для решения более насущных проблем. Это легко читаемая, 

ориентированная на конкретный результат книга, рассказывающая 

о реальных проблемах и решениях.»

Эрик ВанВик, инженер компьютерных систем

с помощьюPython

Р. Митчелл

9 785970 602232

ISBN 978-5-97060-223-2

Райан Митчелл (Ryan Mitchell) – инженер-программист в компании «LinkeDrive» 
(Бостон), где она разрабатывает API и средства анализа данных.  Она регулярно 
консультирует по веб-скрапингу, главным образом, в финансах и розничной торговле. 

Райан Митчелл

Скрапинг веб-сайтов  
с помощью Python

СБОР ДАННЫХ ИЗ СОВРЕМЕННОГО ИНТЕРНЕТА

Ryan Mitchell

Web Scraping  
with Python

COLLECTING DATA FROM THE MODERN WEB

Beijing · Boston · Farnham · Sebastopol · Tokyo

Райан Митчелл

Скрапинг веб-сайтов 
с помощью Python

СБОР ДАННЫХ ИЗ СОВРЕМЕННОГО ИНТЕРНЕТА

Москва, 2016

УДК 004.738.1 :004.738.52Python
ББК 32.971.353
М66

Митчелл Р.
М66 Скрапинг веб-сайтов с помощю Python / пер. с англ. А. В. Груздев. – М.: ДМК Пресс, 2016. – 280 с.: ил. 

ISBN 978-5-97060-223-2

Изучите методы скрапинга и краулинга веб-сайтов, чтобы получить доступ 
к неограниченному объему данных в любом уголке Интернета в любом формате. С помощью этого практического руководства вы узнаете, как использовать 
скрипты Python и веб-API, чтобы одновременно собрать и обработать данные 
с тысяч или даже миллионов веб-страниц.
Идеально подходящая для программистов, специалистов по безопасности 
и веб-администраторов, знакомых с языком Python, эта книга знакомит не только с основными  принципами работы веб-скраперов, но и углубляется в более 
сложные темы, такие как анализ сырых данных или использование скраперов для 
тестирования интерфейса веб-сайта. Примеры программного кода, приведенные 
в книге, помогут разобраться в этих принципах на практике.

УДК  004.738.1 :004.738.52Python
ББК 32.971.353

Authorized Russian translation of the English edition of Web Scraping with 
Python, ISBN 9781491910290 © 2015 Ryan Mitchell
This translation is published and sold by permission of O’Reilly Media, Inc., 
which owns or controls all rights to publish and sell the same. 
Все права защищены. Любая часть этой книги не может быть воспроизведена в какой бы то ни было форме и какими бы то ни было средствами без 
письменного разрешения владельцев авторских прав.
Материал, изложенный в данной книге, многократно проверен. Но поскольку вероятность технических ошибок все равно существует, издательство 
не может гарантировать абсолютную точность и правильность приводимых 
сведений. В связи с этим издательство не несет ответственности за возможные 
ошибки, связанные с использованием книги.

ISBN 978-1-491-91029-0 (анг.) © 2015 Ryan Mitchell
ISBN 978-5-97060-223-2 (рус.) © Оформление, перевод, ДМК Пресс, 2016

Содержание

Предисловие ...................................................................................10
Вступление ......................................................................................13

ЧАСТЬ I. ПОСТРОЕНИЕ СКРАПЕРОВ...........................................20
Глава 1. Ваш первый скрапер ......................................................21
Соединение с Интернетом...............................................................................21
Введение в BeautifulSoup .................................................................................24
Установка BeautifulSoup..............................................................................24
Запуск BeautifulSoup ....................................................................................26
Как обеспечить надежный скрапинг .......................................................28

Глава 2. Продвинутый парсинг HTML.........................................31
Вам не всегда нужен молоток .........................................................................31
Еще одно применение BeautifulSoup ...........................................................32

find() и findAll()..............................................................................................34
Другие объекты BeautifulSoup ..................................................................36
Навигация по дереву синтаксического разбора..................................37
Работа с дочерними элементами и элементами-потомками...........38
Работа с одноуровневыми элементами ..................................................39
Работа с родительскими элементами......................................................40
Регулярные выражения....................................................................................41
Регулярные выражения и BeautifulSoup ....................................................46
Работа с атрибутами...........................................................................................47
Лямбда-выражения ............................................................................................48
За рамками BeautifulSoup................................................................................48

Глава 3. Запуск краулера...............................................................50
Обход отдельного домена.................................................................................50
Краулинг всего сайта.........................................................................................54
Сбор данных по всему сайту ...........................................................................57
Краулинг Интернета..........................................................................................59
Краулинг с помощью Scrapy...........................................................................65

Глава 4. Использование API..........................................................70
Как работают API................................................................................................71
Общепринятые соглашения............................................................................72
Методы...............................................................................................................72

 Содержание

Аутентификация .............................................................................................73
Ответы ....................................................................................................................74
Вызовы API ......................................................................................................75
Echo Nest ................................................................................................................76
Несколько примеров .....................................................................................76
Twitter ......................................................................................................................78
Приступаем к работе .....................................................................................78
Несколько примеров .....................................................................................79
Google API .............................................................................................................83
Приступаем к работе .....................................................................................83
Несколько примеров .....................................................................................84
Парсинг JSON-данных ......................................................................................86
Возвращаем все это домой ...............................................................................88
Подробнее о применении API ........................................................................92

Глава 5. Хранение данных ............................................................94
Медиафайлы .........................................................................................................94
Сохранение данных в формате CSV .............................................................97
MySQL ....................................................................................................................99
Установка MySQL ....................................................................................... 100
Некоторые основные команды ............................................................... 102
Интеграция с Python ................................................................................. 106
Методы работы с базами данных и эффективная практика ........ 109
«Шесть шагов» в MySQL ......................................................................... 112
Электронная почта .......................................................................................... 115

Глава 6. Чтение документов .......................................................117
Кодировка документа ..................................................................................... 117
Текст ...................................................................................................................... 118
Кодировка текста и глобальный Интернет ........................................ 119
CSV ....................................................................................................................... 124
Чтение CSV-файлов ................................................................................... 124
PDF ....................................................................................................................... 126
Microsoft Word и .docx .................................................................................... 128

ЧАСТЬ II. ПРОДВИНУТЫЙ СКРАПИНГ ....................................132
Глава 7. Очистка данных .............................................................133
Очистка данных на этапе создания кода .................................................. 133
Нормализация данных .............................................................................. 136

Содержание  7

Очистка данных постфактум ....................................................................... 138
OpenRefine ..................................................................................................... 139

Глава 8. Чтение и запись естественных языков .....................144
Аннотирование данных .................................................................................. 145
Марковские модели ......................................................................................... 148
Шесть шагов Википедии: заключительная часть ............................ 152
Natural Language Toolkit ................................................................................ 156
Установка и настройка .............................................................................. 156
Статистический анализ с помощью NLTK ........................................ 156
Лексикографический анализ с помощью NLTK .............................. 160
Дополнительные ресурсы ............................................................................. 163

Глава 9. Краулинг сайтов, использующих веб-формы ..........165
Библиотека requests ........................................................................................ 165
Отправка простой формы ............................................................................. 166
Радиокнопки, флажки и другие элементы ввода данных .................. 168
Отправка файлов и изображений ............................................................... 170
Работа с логинами и cookies ......................................................................... 171
Базовая HTTP-аутентификация ........................................................... 173
Другие проблемы при работе с формами ................................................ 174

Глава 10. Скрапинг JavaScript-кода ...........................................175
Краткое введение в JavaScript ..................................................................... 176
Распространенные библиотеки JavaScript ......................................... 177
Ajax и динамический HTML ........................................................................ 180
Выполнение JavaScript в Python с помощью библиотеки  
Selenium .......................................................................................................... 181
Обработка редиректов .................................................................................... 186

Глава 11. Обработка изображений и распознавание  
текста ..............................................................................................189
Обзор библиотек .............................................................................................. 190
Pillow ............................................................................................................... 190
Tesseract .......................................................................................................... 191
NumPy ............................................................................................................. 192
Обработка хорошо отформатированного текста................................... 193
Скрапинг текста с изображений, размещенных  
на веб-сайтах ................................................................................................. 196

 Содержание

Чтение CAPTCHA и обучение Tesseract ................................................. 198
Обучение Теsseract...................................................................................... 200
Извлечение CAPTCHA и отправка результатов.  
распознавания ................................................................................................... 204

Глава 12. Обход ловушек в ходе скрапинга .............................208
Обратите внимание на этический аспект ................................................ 209
Учимся выглядеть как человек .................................................................... 210
Настройте заголовки .................................................................................. 210
Обработка cookies ....................................................................................... 212
Время решает все......................................................................................... 214
Общие функции безопасности, используемые веб-формами .......... 215
Значения полей скрытого ввода ............................................................ 215
Обходим «горшочки с медом» ................................................................ 217
Проверяем скрапер на «человечность» .................................................... 219

Глава 13. Тестирование вашего сайта с помощью  
скраперов .......................................................................................221
Введение в тестирование ............................................................................... 222
Что такое модульные тесты? ................................................................... 222
Питоновский модуль unittest ...................................................................... 223
Тестирование Википедии ......................................................................... 224
Тестирование с помощью Selenium ............................................................ 227
Взаимодействие с сайтом ......................................................................... 227
Unittest или Selenium? ................................................................................... 231

Глава 14. Скрапинг с помощью удаленных серверов ...........233
Зачем использовать удаленные серверы? ............................................... 233
Как избежать блокировки IP-адреса .................................................... 234
Переносимость и расширяемость .......................................................... 235
Tor .......................................................................................................................... 236
PySocks ........................................................................................................... 237
Удаленный хостинг .......................................................................................... 238
Запуск с аккаунта веб-хостинга ............................................................. 238
Запуск из облака.......................................................................................... 240
Дополнительные ресурсы ............................................................................. 241
Заглянем в будущее ......................................................................................... 242

Приложение А. Кратко о том, как работает Python .................244
Установка и «Hello, World!» ......................................................................... 244

Содержание  9

Приложение В. Кратко о том, как работает Интернет .............248

Приложение С. Правовые и этические аспекты  
веб-скрапинга ................................................................................252
Товарные знаки, авторские права, патенты, о боже! ............................ 252
Авторское право .......................................................................................... 254
Посягательство на движимое имущество ................................................ 256
Закон о компьютерном мошенничестве и злоупотреблении............ 258
robots.txt и Пользовательское соглашение ............................................. 259
Три нашумевших случая в практике  
веб-скрапинга .................................................................................................... 263
eBay против Bidder’s Edge и посягательство на движимое  
имущество ...................................................................................................... 263
США против Орнхаймера и Закон о компьютерном  
мошенничестве и злоупотреблении ...................................................... 265
Филд против Google: авторское право  
и robots.txt ..................................................................................................... 268

Об авторе .......................................................................................269
Колофон .........................................................................................270
Предметный указатель ................................................................271

Доступ онлайн
649 ₽
В корзину