Узнайте, что такое парсинг веб-страниц на примерах!

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

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

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

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

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

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

Но как это возможно? Очень просто. Каждый веб-сайт написан с использованием HTML (язык гипертекстовой разметки). HTML определяет структуру веб-сайта!

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

Вот так выглядит HTML-код. На реальных веб-сайтах код будет еще более сложным и длинным.

<!DOCTYPE html>

<html>
  <head>
    <title>Cities</title>
  </head>
  
  <body>
  
    <div class="city">
      <h2>London</h2>
      <p>Capital of England.</p>
    </div>
    
    <div class="city">
      <h2>Paris</h2>
      <p>Capital of France.</p>
    </div>
    
    <div class="city">
      <h2>Tokyo</h2>
      <p>Capital of Japan.</p>
    </div>
  
  </body>
</html>

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

Если вы не знаете HTML, это вообще не проблема. Это очень простой язык, который легко понять. Но, как новичок, просто помните, что невозможно создать веб-сайт без HTML.

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

Инструменты для очистки Интернета

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

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



Давайте поговорим о готовых решениях для парсинга веб-страниц позже в другой статье. Теперь, как мы сами напишем скрипт парсера? Какой язык программирования лучше всего подходит? Что ж, единодушный ответ на этот вопрос — Python.

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

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

Запросы —это библиотека для создания HTTP-запросов к веб-сайту. Думайте об этом как о запросе чего-либо на веб-сайте, и, в свою очередь, веб-сайт дает нам ответ, который предоставляет то, что мы просили. Мы используем это, чтобы получить HTML-код веб-сайта.

Beautiful Soup —библиотека для извлечения необходимых данных из полученного HTML-кода. Это упрощает нашу работу, предоставляя определенные методы для поиска и извлечения нужных данных из сложной HTML-страницы. Эта библиотека лучше всего подходит для начинающих.

Selenium —это библиотека для очистки данных на веб-страницах с поддержкой JavaScript. На некоторых веб-сайтах перед очисткой требуется взаимодействие с кнопками и другими элементами. Эти клики можно автоматизировать с помощью Selenium. Это несколько несколько сложно для начинающих и требует некоторой настройки.

Это некоторые из библиотек, которые часто используются для очистки Интернета. Такие библиотеки, как Scrapy, также используются для разработки парсеров.

Простой пример парсинга веб-страниц

Позвольте мне показать вам очень простой код Python, чтобы получить полный HTML код страницы продукта Flipkart для iPhone. Вам не нужно понимать код. Этот пример должен показать вам, насколько простым может быть парсинг.

import requests
from bs4 import BeautifulSoup

url = "https://www.flipkart.com/mobiles/apple~brand/pr?sid=tyy%2C4io&p%5B%5D=facets.brand%255B%255D%3DAPPLE&sort=popularity"

r = requests.get(url)
soup = BeautifulSoup(r.text, "lxml")

print(soup.prettify())

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

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta content="IE=Edge" http-equiv="X-UA-Compatible"/>
    <meta content="102988293558" property="fb:page_id"/>
    <meta content="noodp" name="robots"/>
    <title>
       iPhone -  Buy Apple iPhones online at Best Prices in INDIA at Flipkart.com
    </title>
  </head>
  <body>
    <div>
      <div class="CXW8mj" style="height:200px;width:200px">
        <img alt="APPLE iPhone 13 (Blue, 128 GB)" class="_396cs4" loading="eager" src="https://rukminim2.flixcart.com/image/312/312/ktketu80/mobile/2/y/o/iphone-13-mlpk3hn-a-apple-original-imag6vpyur6hjngg.jpeg?q=70"/>
      </div>
    </div>
    <div class="_4rR01T">
      APPLE iPhone 13 (Blue, 128 GB)
    </div>
    <div class="gUuXy-">
      <span class="_1lRcqv" id="productRating_LSTMOBG6VF5SMXPNQHGH3DY6Z_MOBG6VF5SMXPNQHG_">
        <div class="_3LWZlK">
          4.7
          <img class="_1wB99o" src="data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxMyIgaGVpZ2h0PSIxMiI+PHBhdGggZmlsbD0iI0ZGRiIgZD0iTTYuNSA5LjQzOWwtMy42NzQgMi4yMy45NC00LjI2LTMuMjEtMi44ODMgNC4yNTQtLjQwNEw2LjUuMTEybDEuNjkgNC4wMSA0LjI1NC40MDQtMy4yMSAyLjg4Mi45NCA0LjI2eiIvPjwvc3ZnPg=="/>
        </div>
      </span>
    </div>
  </body>
</html>

Я включил код, отображающий некоторые важные детали одного продукта. Однако исходный вывод содержит более 1000 строк кода!

Заключение

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

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

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

В следующей серии статей мы углубимся в мир веб-скрапинга.

Итак, вы ясно поняли веб-скрапинг? Насколько это было интересно? Вы можете свободно высказываться в комментариях! Если эта статья оказалась полезной, поддержите аплодисментами, чтобы показать, что она вам понравилась.

Вы можете получить мои бесплатные рукописные заметки Python! Если хотите, поддержите меня, купив версию Magic Scan за $2+ или $8+.

Этот пост содержит партнерские ссылки. Если вы воспользуетесь этими ссылками, чтобы что-то купить, я могу заработать комиссию. Спасибо!

Подпишитесь на меня, чтобы узнать больше о парсинге веб-страниц!

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



Спасибо, что прочитали! Удачного просмотра веб-страниц :)

Дальнейшее чтение





Дополнительные материалы на PlainEnglish.io.

Подпишитесь на нашу бесплатную еженедельную рассылку новостей. Подпишитесь на нас в Twitter, LinkedIn, YouTube и Discord .