Рубрики
Без рубрики

Веб соскоб с красивой В питоне

Сводка: веб-соскоб – это процесс извлечения данных из Интернета. Он также известен как извлечение веб-конфитации или веб-данных. Python позволяет выполнять веб-соскоб с использованием автоматических методов. BeautifulSoup – это библиотека Python, используемая для анализа данных (структурированных данных) из документов HTML и XML. Интернет – это огромное богатство … Web Scraping с BawySoup В Python Подробнее »

Автор оригинала: Shubham Sayon.

Резюме: Веб-соскоб – это процесс извлечения данных из Интернета. Это также известно как Урожай веб или Добыча веб-данных. Python позволяет нам выполнять веб-соскоб, используя автоматизированный техника. Beautifulsoup Библиотека Python, используемая для анализа данных (структурированных данных) из документов HTML и XML.

Интернет – это огромное богатство данных. Независимо от того, являетесь ли вы ученым данных, деловым человеком, студентом или профессионалом, все вы сбрасывали данные из Интернета. Да все верно! Я повторяю – вы уже прорастают данные, если вы использовали Интернет для вашей работы или даже развлечений. Так что же означает Web Scraping? Это простой акт извлечения данных с веб-сайта. Даже копирование и копирование данных из Интернета – это веб-соскоб. Поэтому, если вы загрузили свою любимую песню из Интернета или скопировали вашу любимую цитату из Интернета, это означает, что вы уже сбрасывали данные из Интернета.

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

Что такое Scraping Web?

Веб-соскоб – это процесс извлечения данных из Интернета. Это также известно как Урожай веб или Добыча веб-данных. Python позволяет нам выполнять веб-соскоб, используя автоматизированный техника.

Некоторые из наиболее часто используемых библиотек в Python для веб-соскоба:

  • То Запросы библиотека.
  • То Красивый суп 4 библиотека.
  • Селен .
  • Соскребация .

В этой статье мы собираемся исследовать Beautifulsoup Библиотека и Запросы Библиотека для царапания данных с сайта.

Почему мы соскребеем данные из Интернета?

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

  • Если вы являетесь аналитиком данных, и вам необходимо извлечь данные из Интернета в день на сутки, то создание автоматизированного веб-сканера – это решение для уменьшения вашего бремени извлечения данных вручную каждый день.
  • Вы можете использовать Web Scrappers для извлечения информации о продуктах из интернет-магазинов и сравнить цены на товары и технические характеристики.
  • Вы можете использовать веб-соскоб для контент-маркетинга и акциям социальных сетей.
  • Как студент или исследователь, вы можете использовать веб-соскоб для извлечения данных для вашего исследования/проекта из Интернета.

Инострая линия: «Автоматизированный веб-соскобщик позволяет работать умным!»

Веб-соскоб законный?

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

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

Помнить:

Прежде чем мы погрузимся в Web Scraping, важно, чтобы мы понимали, как работает веб-сайты, и что такое язык разметки гипертекста, потому что это то, что мы собираемся извлечь наши данные. Следовательно, давайте провести краткое обсуждение по HTTP-запрос на ответ модель и HTML.

Модель HTTP-запроса/ответа

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

Простые слова , HTTP-запрос/ответ – это модель связи, используемая HTTP и другими расширенными протоколами, которые основаны на HTTP, в соответствии с которым клиент (веб-браузер) отправляет запрос на ресурс или услугу на сервер, и сервер отправляет ответ Соответствует ресурсу, если запрос успешно обработан, в противном случае сервер отвечает с сообщением об ошибке в случае, если он не может обработать запрос.

Есть многочисленные методы HTTP, используемые для взаимодействия с веб-сервером; Но наиболее часто используемые являются получить и Почта.

  • Получить : Используется для запроса данных из определенного ресурса на веб-сервере.
  • Пост : Используется для отправки данных на сервер для создания/обновления ресурса.

Другие методы HTTP:

  • ПОЛОЖИЛ
  • ГОЛОВА
  • УДАЛЯТЬ
  • ПЛАСТЫРЬ
  • ПАРАМЕТРЫ

Примечание: Чтобы соскрести данные с сайта, мы отправим запрос на веб-сервер, используя Запросы Библиотека вместе с Получить () метод.

HTML – язык разметки гипертекста

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

💡 HTML имеет иерархический /Структура дерева Отказ Это свойство позволяет нам получать доступ к элементам HTML-документа при соскребении веб-страницы на основе их родительских и детей. Для того чтобы визуализировать структуру дерева HTML, давайте посмотрим на изображение, приведенное ниже.

У меня есть перечисленная пара ссылок, если вы хотите дальше исследовать и узнать о том, как работает HTML:

Создание веб-скребка

Теперь начните создавать наш веб-скребок. Сайт, который мы собираемся в Scrape – это вакансионская панель, которая перечисляет самые последние вакансии Python. В этом прохождении мы будем соскабливать:

  • Название работы
  • Расположение работы
  • Имя организации

Сайт, который будет соскок: Бесплатная доска работы Python

Шаг 1: Навигация и проверьте веб-страницу/веб-страницу

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

Навигаться по инструментам разработчика:

  1. Щелкните правой кнопкой мыши на веб-странице.
  2. Выберите Проверять Отказ

Примечание: Import Element – это инструмент разработчика, реализованный в большинстве веб-браузеров, которые включают Google Chrome, Firefox, Safari и Internet Explorer. Это позволяет нам просматривать и редактировать исходный код HTML и CSS на бэкэнде. Изменения, внесенные в код, отражены в режиме реального времени в вашем окне браузера. Лучшая часть – это вам не нужно беспокоиться о нарушении страницы, когда вы играете с кодом, потому что изменения, сделанные вами, только вступит в силу только на ваш сеанс и отражаются только на вашем экране. Другими словами, осмотр элемент предоставляет нам своего рода «что если» опыт, не влияя на содержимое для любого другого пользователя.

Для просмотра источника страницы:

  1. Щелкните правой кнопкой мыши на веб-странице.
  2. Выберите Просмотр источника страницы

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

Шаг 2: Создайте пользовательский агент

Пользовательский агент является клиентом (обычно веб-браузером), который используется для отправки запросов на веб-сервере от имени пользователя. Получайте автоматические запросы снова и снова с того же машины/системы, веб-сервер может догадаться, что запрос автоматизирован и отправляется ботом. Таким образом, он блокирует запрос. Поэтому мы можем использовать пользовательский агент для поддельного посещения браузера к определенной веб-странице, который делает сервер полагать, что запрос был из оригинального пользователя, а не бота.

Синтаксис:

# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) "
                         "Chrome/31.0.1650.0 Safari/537.36"}
# passing the user agent as a parameter along with the get() Request
response = requests.get("http://pythonjobs.github.io/", headers=headers)

Шаг 3: Импортируйте библиотеку запросов

✨ Библиотека запросов

Библиотека запросов позволяет нам отправить получить Запрос на веб-сервер.

Вот как это работает:

  • Импортируйте библиотеку Python Запросы Это обрабатывает детали запроса веб-сайтов с сервера в формате простого в процессе.
  • Используйте requests.get (...) Способ доступа к веб-сайту и пройти URL 'http://pythonjobs.github.io/' в качестве аргумента, так что функция знает, какое место для доступа.
  • Доступ к фактическому телу получить Запрос (Возвращаемое значение – это объект запроса, который также содержит некоторую полезную мета-информацию, такую как тип файла и т. Д.) И хранить его в переменной с помощью .content атрибут.

Синтаксис:

import requests

# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) "
                         "Chrome/31.0.1650.0 Safari/537.36"}
# get() Request
response = requests.get("http://pythonjobs.github.io/", headers=headers)
# Store the webpage contents
webpage = response.content

✨ Проверка кода состояния

После обработки HTTP-запроса обрабатывается сервером, он отправляет ответ, который содержит код состояния Отказ Код состояния указывает, был ли конкретный ответ был успешно обработан или нет.

Есть основные 5 различных категорий кодов статуса:

Синтаксис:

print(response.status_code)

Шаг 4: Parse HTML с использованием библиотеки BeautifulSoup

✨ Библиотека BeautifulSoup

BeautifulSoup Библиотека Python, используемая для анализа данных (структурированных данных) из документов HTML и XML.

  • Импортируйте библиотеку BeautifulSoup.
  • Создайте объект BeautifulSoup. Первый параметр представляет данные HTML, а второй параметр – анализатор.

Синтаксис:

import requests
from bs4 import BeautifulSoup
# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) "
                         "Chrome/31.0.1650.0 Safari/537.36"}
# get() Request
response = requests.get("http://pythonjobs.github.io/", headers=headers)
# Store the webpage contents
webpage = response.content
# Check Status Code (Optional)
# print(response.status_code)
# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")

Как только мы создали объект Beautifulsoup, нам нужно использовать различные варианты, предоставляемые нам Beautifulsoup Библиотека для навигации и найдя элементов в HTML-документе и соскребация данных из него.

💡 Внимание:

Если вы хотите понять, как ориентироваться через HTML-документ, используя компоненты Beautifulsoup Библиотека, пожалуйста, обратитесь к нашему Учебное пособие Чтобы узнать о различных вариантах, предоставляемых Beautifulsoup разбирать документ HTML.

Давайте посмотрим на код, а затем мы поймем принцип работы/логику позади этого.

# The logic
for job in soup.find_all('section', class_='job_list'):
    title = [a for a in job.find_all('h1')]
    for n, tag in enumerate(job.find_all('div', class_='job')):
        company_element = [x for x in tag.find_all('span', class_='info')]
        print("Job Title: ", title[n].text.strip())
        print("Location: ", company_element[0].text.strip())
        print("Company: ", company_element[3].text.strip())
        print()
  • Во внешней петли I.E. Для работы в SUP.Find_all («Раздел»,) , мы находим родительский элемент, который в этом случае является тегом раздела, имеющего класс HTML с именем работа а потом повторить это.
  • Название Переменная представляет собой список пометков и используется для хранения заголовков заданий. Другими словами, job.find_all ('div',) Функция используется для поиска всех Div Теги, имеющие имя класса работа а затем сохранить данные в списке Название Отказ
  • Внутренняя петля I.E. Для n, тег в перечислении (job.find_all ('div',)) имеет пару функций:

    1. Ищите все Div Элементы с классом Информация Отказ
    2. Держите счет каждой итерации с помощью перечислять функция.
  • Внутри внутренней петли, понимание списка Company_Element хранит все содержимое, которые находятся в пределах промежуток Тег с классом Информация Отказ
  • Наконец, с помощью счетчика N Функции перечисления, мы извлекаем элементы заголовка тега (который хранит заголовки заданий) с помощью их индекса. Расположение и названия компаний извлечены из 0 и 3-го индекса списка Company_Element Отказ

Окончательное решение

Теперь давайте консолидируем все шаги для достижения окончательного решения/кода, как показано ниже:

import requests
from bs4 import BeautifulSoup
# create User-Agent (optional)
headers = {"User-Agent": "Mozilla/5.0 (CrKey armv7l 1.5.16041) AppleWebKit/537.36 (KHTML, like Gecko) "
                         "Chrome/31.0.1650.0 Safari/537.36"}
# get() Request
response = requests.get("http://pythonjobs.github.io/", headers=headers)
# Store the webpage contents
webpage = response.content
# Check Status Code (Optional)
# print(response.status_code)
# Create a BeautifulSoup object out of the webpage content
soup = BeautifulSoup(webpage, "html.parser")
# The logic
for job in soup.find_all('section', class_='job_list'):
    title = [a for a in job.find_all('h1')]
    for n, tag in enumerate(job.find_all('div', class_='job')):
        company_element = [x for x in tag.find_all('span', class_='info')]
        print("Job Title: ", title[n].text.strip())
        print("Location: ", company_element[0].text.strip())
        print("Company: ", company_element[3].text.strip())
        print()

Выход:

Job Title: Software Engineer (Data Operations)
Location:  Sydney, Australia / Remote
Company:  Autumn Compass

Job Title: Developer / Engineer
Location:  Maryland / DC Metro Area
Company:  National Institutes of Health contracting company.

Job Title: Senior Backend Developer (Python/Django)
Location:  Vienna, Austria
Company:  Bambus.io

Ура! Мы успешно создали наш первый скрипт веб-скребка.

Примеры

Как говорится – «практика делает человека идеальным!» Поэтому, пожалуйста, посмотрите на следующую статью, которая перечисляет процесс Scraping Web с помощью пяти примеров. Нажмите на кнопку/ссылку, приведенную ниже, чтобы посмотреть на эти примеры и практиковать их, чтобы освоить навык веб-соскабливания с использованием библиотеки Python BuildsUous.

Заключение

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

Пожалуйста, Подписаться и Оставайтесь настроиться Для более интересных статей в будущем.

Куда пойти отсюда?

Достаточно теории, давайте познакомимся!

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

Практические проекты – это то, как вы обостряете вашу пилу в кодировке!

Вы хотите стать мастером кода, сосредоточившись на практических кодовых проектах, которые фактически зарабатывают вам деньги и решают проблемы для людей?

Затем станьте питоном независимым разработчиком! Это лучший способ приближения к задаче улучшения ваших навыков Python – даже если вы являетесь полным новичком.

Присоединяйтесь к моему бесплатным вебинаре «Как создать свой навык высокого дохода Python» и посмотреть, как я вырос на моем кодированном бизнесе в Интернете и как вы можете, слишком от комфорта вашего собственного дома.

Присоединяйтесь к свободному вебинару сейчас!

Я профессиональный Python Blogger и Content Creator. Я опубликовал многочисленные статьи и создал курсы в течение определенного периода времени. В настоящее время я работаю полный рабочий день, и у меня есть опыт в областях, таких как Python, AWS, DevOps и Networking.

Вы можете связаться со мной @:

Оригинал: “https://blog.finxter.com/web-scraping-with-beautifulsoup-in-python/”