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

Практическое руководство по парсингу веб-сайтов.

Митчелл Р. «Скрапинг веб-сайтов с помощю Python» ДМК Пресс, 2016 год, 280 стр., пер. с англ. А. В. Груздев (18,3 мб. pdf+доп. материалы)

Читая книгу вы изучите web scraping с помощью python (сбора информации), для получения доступа к неограниченному объему данных на любом сайте Интернета в любом формате. Используя это практическое руководство вы сможете создавать скрипты Python и использовать веб-API, для сбора и обработки данных с любых доступных веб-страниц и возможностью использования анонимного доступа. Руководство вызовет интерес программистов, разработчиков в области безопасности и веб-администраторов, знакомых с Python. Это руководство знакомит с основными принципами работы веб-скраперов, а также исследует такие темы, как анализ полученных данных или использование продвинутого парсинга для тестирования интерфейса веб-сайта. Примеры программного кода, приведенные в книге,(найдете в доп. материалах) помогут понять методы создания и практического использования скрапинга.
ISBN 978-1-491-91029-0 (анг.)
ISBN 978-5-97060-223-2 (рус.)

Оглавление книги

ЧАСТЬ I. Построение скраперов 20

Глава 1. Ваш первый скрапер 21
Соединение с Интернетом 21
Введение в BeautifulSoup 24
Установка BeautifulSoup 24
Запуск BeautifulSoup 26
Как обеспечить надежный скрапинг 28

Глава 2. Продвинутый парсинг HTML 31
Вам не всегда нужен молоток 31
Еще одно применение BeautifulSoup 32
find() H 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
Очистка данных постфактум 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
Обучение Tesseract 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

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

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

Скачать книги бесплатно18,3 мб. pdf+доп. материалы

Похожая литература