Что такое скребок? Как собирать данные с сайтов

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

Почему веб-чистка полезна

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

Фактически, настолько, что мозг самого умного человека, повышенный до 100% эффективности (кто-то должен снять фильм об этом), все равно не сможет удерживать 1/1000 данных, хранящихся в Интернете только в Соединенных Штатах. ,

По оценкам Cisco, в 2016 году трафик в Интернете превысил один зетабайт, что составляет 1 000 000 000 000 000 000 000 байтов или один байт секстиллиона (продолжайте, хихикайте над секстиллионом). Один зетабайт — это около четырех тысяч лет потоковой передачи Netflix. Это было бы равносильно тому, если бы вы, бесстрашный читатель, транслировали Office с начала до конца, не останавливаясь 500 000 раз.

Визуализация данных в Интернете Зетабайт Экзабайт Петабайт Терабайт Гигабайт МегабайтИзображение предоставлено: Cisco / Заря Зетабайта

Все эти данные и информация очень пугают. Не все это правильно. Не многое из этого относится к повседневной жизни, но все больше и больше устройств доставляют эту информацию с серверов по всему миру прямо в глаза и в наш мозг.

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

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

Как браузер получает веб-данные?

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

Во-первых, ваш браузер возьмет URL-адрес, который вы ввели или нажали (Pro-tip: наведите курсор на ссылку, чтобы увидеть URL-адрес в нижней части браузера, прежде чем нажимать его, чтобы избежать получения панка), и сформируйте «запрос» для отправки. на сервер. Затем сервер обработает запрос и отправит ответ обратно.

Ответ сервера содержит HTML, JavaScript, CSS, JSON и другие данные, необходимые для того, чтобы ваш веб-браузер мог сформировать веб-страницу для вашего удобства просмотра.

Проверка веб-элементов

Современные браузеры позволяют нам некоторые детали относительно этого процесса. В Google Chrome на Windows вы можете нажать Ctrl + Shift + I или щелкните правой кнопкой мыши и выберите Осмотреть. В этом окне появится экран, который выглядит следующим образом.

Проверьте веб-элемент с помощью Google Chrome

Список параметров с вкладками располагается в верхней части окна. В настоящее время интерес представляет сеть Вкладка. Это даст подробную информацию о HTTP-трафике, как показано ниже.

Проверка веб-запроса с помощью Google Chrome

В правом нижнем углу мы видим информацию о HTTP-запросе. URL — это то, что мы ожидаем, а «method» — это HTTP-запрос «GET». Код состояния из ответа указан как 200, что означает, что сервер видел запрос как действительный.

Под кодом состояния находится удаленный адрес, который является общедоступным IP-адресом сервера makeuseof.com. Клиент получает этот адрес по протоколу DNS

,

В следующем разделе перечислены подробности об ответе. Заголовок ответа содержит не только код состояния, но и тип данных или содержимого, которое содержит ответ. В этом случае мы смотрим на «text / html» со ​​стандартной кодировкой. Это говорит нам о том, что ответом является буквально HTML-код для отображения сайта.

Проверьте HTML-ответ веб-запроса с помощью Google Chrome

Другие типы ответов

Кроме того, серверы могут возвращать объекты данных в ответ на запрос GET, а не только HTML-код для отображения веб-страницы. Интерфейс прикладного программирования веб-сайта (или API)

обычно использует этот тип обмена.

Просматривая вкладку Сеть, как показано выше, вы можете увидеть, есть ли этот тип обмена. При исследовании CrossFit Open Leaderboard отображается запрос на заполнение таблицы данными.

Проверьте данные запроса веб-запроса с помощью Google Chrome

При щелчке по ответу отображаются данные JSON вместо HTML-кода для отображения веб-сайта. Данные в JSON представляют собой серию меток и значений в многоуровневом, выделенном списке.

Проверьте веб-ответ JSON с помощью Google Chrome

Разбор HTML-кода вручную или просмотр тысяч пар ключ / значение JSON во многом похож на чтение Матрицы. На первый взгляд это похоже на бред. Может быть слишком много информации, чтобы вручную ее декодировать.

Веб-скребки на помощь!

Теперь, прежде чем вы попросите синюю таблетку, чтобы убраться отсюда, вы должны знать, что нам не нужно вручную декодировать HTML-код! Невежество не блаженство, а этот стейк является вкусные.

Веб-скребок может выполнить эти сложные задачи для вас. Скрап-фреймворки доступны на Python, JavaScript, Node и других языках. Один из самых простых способов начать чистку — использовать Python и Beautiful Soup.

Очистка сайта с помощью Python

Начало работы занимает всего несколько строк кода, если у вас установлены Python и BeautifulSoup. Вот небольшой скрипт, чтобы получить исходный текст сайта и позволить BeautifulSoup оценить его.

from bs4 import BeautifulSoup
import requests
url = "http://www.athleticvolume.com/programming/"
content = requests.get(url)
soup = BeautifulSoup(content.text)
print(soup)

Очень просто, мы делаем запрос GET к URL, а затем помещаем ответ в объект. Печать объекта отображает исходный HTML-код URL. Процесс такой же, как если бы мы вручную зашли на сайт и нажали Просмотреть исходный код.

В частности, это веб-сайт, на котором публикуются тренировки в стиле CrossFit каждый день, но только по одному в день. Мы можем построить наш скребок, чтобы получать тренировки каждый день, а затем добавить его в сводный список тренировок. По сути, мы можем создать текстовую базу данных о тренировках, которую легко найти.

Волшебство BeaufiulSoup — это возможность поиска по всему HTML-коду с помощью встроенной функции findAll (). В этом конкретном случае веб-сайт использует несколько тегов «sqs-block-content». Поэтому скрипт должен пройти через все эти теги и найти интересующий нас.

Кроме того, есть ряд

теги в разделе. Сценарий может добавить весь текст из каждого из этих тегов в локальную переменную. Для этого добавьте в скрипт простой цикл:

for div_class in soup.findAll('div', {'class': 'sqs-block-content'}):
recordThis = False
for p in div_class.findAll('p'):
if 'PROGRAM' in p.text.upper():
recordThis = True
if recordThis:
program += p.text
program += '\n'

Вуаля! Сетевой скребок родился.

Масштабирование Соскоб

Существуют два пути для продвижения вперед.

Один из способов изучения веб-скребинга — использовать уже созданные инструменты. Web Scraper (великое имя!) Имеет 200 000 пользователей и прост в использовании. Кроме того, Parse Hub позволяет пользователям экспортировать извлеченные данные в Excel и Google Sheets.

Кроме того, Web Scraper предоставляет плагин Chrome, который помогает визуализировать, как создается веб-сайт. Лучше всего, судя по названию, OctoParse, мощный скребок с интуитивно понятным интерфейсом.

Наконец, теперь, когда вы знаете фон веб-скребка, поднимите свой собственный маленький веб-скребок, чтобы иметь возможность сканировать и запускать

само по себе это забавное занятие.

Ссылка на основную публикацию
Adblock
detector