Веб-скрейпинг с использованием Google Sheets

Веб-скрейпинг с использованием Google Sheets

Автор оригинальной статьи

Ссылка на оригинал статьи, также доступен видео-урок.

Веб-скрейпинг и использование различных API - прекрасные способы сбора данных (для их последующего анализа) с различных приложений и веб-сайтов, некоторые компании даже используют скрейпинг в качестве своего основного дохода. Например, компания "HiQ" прочесывает множество сайтов и предоставляет данные различным организациям на их собственных сотрудников. Эта работа помогает бизнесу выявлять самых талантливых работников через такие сайты как LinkedIn, получая информацию через специальные алгоритмы.

Однако их работа компании оказалась под угрозой, когда LinkedIn попытался остановить их деятельность, и даже ввел некоторые технические ограничения для скрейпинга, чтобы замедлить работу сканеров HiQ. В последствии, HiQ подали в суд на LinkedIn и выиграли процесс! Судья доказал, что пока данные находятся в открытом доступе, их можно скрейпить.

Веб-скрейпинг обычно требует понимания запросов HTTP, подделок заголовков, сложных операторов Regex, парсеров HTML и навыков управления базами данных. Однако, есть языки программирования, которые могут упростить работу, как например Python. Python предлагает такие функции как Scrapy и BeautifulSoup, которые облегчают очистку и анализ HTML, но этот язык требует понимания программирования и знаний архитектур веб-сайта.

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

Функции Google Sheets для скрейпинга.

  • ImportXML
  • ImportHTML
  • ImportFEED
  • ImportDATA

Скрейпинг через ImportFEED

Функция ImportFEED одна из самых легких для использования, она требует доступ к Google Sheets и URL rss-ленты, такая лента часто ассоциируется с блоговой. К примеру, вы можете использовать rss-ленту: “http://www.acheronanalytics.com/2/feed". Все, что вам нужно - ввести “=ImportFeed( “http://www.acheronanalytics.com/2/feed"). Есть еще несколько советов, которые помогут вам очистить данные, как только вы будете иметь больше чем одну колонку, но и это отличное начало!

Так же, все функции автоматически обновляются раз в 2 часа.

Скрейпинг через ImportXML

Эта функция в Google Sheets используется для вытягивания определенных данных используя классы и идентификаторы HTML. Эта функция требует некоторого понимания HTML и парсинга XML. Это может показаться сложным, поэтому шаг за шагом мы сделаем скрейпинг для HTML.

Ниже приведены пример страницы EvenBrite:

  1. Перейдите на https://www.eventbrite.com/d/wa--everett/events/
  2. Через правый клик нажмите "Просмотреть код элемента"
  3. Найдите интересующий HTML тэг
  4. Мы ищем <div class = list-card__body> Some Text Here</div>
  5. Сейчас начнутся сложности. Первая часть которую вам необходимо вытащить из этого HTML тэга - это type. Это выглядит как <div>, <a>, <img>, <span>, и др. Он может быть вызван используя  “//”, а затем название тэга, такие как “//div”, “//a” or “//span”.
  6. Теперь, если вам действительно нужно получить “Some Text” вам необходимо вызвать класс.
  7. Сделать это нужно по методу пункта 5. Вы поймете, что это комбинируется с использованием  “//div”  и “[@class=”class name”].
  8. Полоса xml это “//div[@class=’list-card__body’]”
  9. Возможно вы хотите получить еще одно значение данных
  10. Нам нужно получить все URL
  11. Этот случай подразумевает использование определенного значения внутри первого HTML тэга, например <a href=”https//www.google.com">Click here</a>
  12. Повторите шаг 7
  13. Полоса xml ”//a/@href”
  14. ImportXML (URL, полоса XML)
  15. ImportXML (“https://www.eventbrite.com/d/wa--everett/events/",“//div[@class=’list-card__body’]”)

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

Веб-скрейпинг ImportHTML

Наконец, мы дошли до ImportHTML, эта функция позволит импортировать таблицу или листы с веб-сайта. Например, если вам нужно скрейпить данные с сайта содержащего стоковые цены как на http://www.nasdaq.com/symbol/snap/real-time

Так же, как и в предыдущей функции вам потребуется использовать URL. Выше URL нужно упомянуть, какую таблицу вам необходимо вытащить с сайта, вы можете использовать ее номер.

Пример:

ImportHTML(“http://www.nasdaq.com/symbol/snap/real-time",6). Эта строка соберет стоковые цены по ссылке указанной выше.

http://www.commitstrip.com/en/2015/05/19/data-wars/



Ссылка на оригинал статьи.


Report Page