Разное

Как парсить данные с сайтов в таблицу Google?

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


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

Чтобы работать с таблицей, нужно использовать класс SpreadsheetApp, который позволяет довольно удобно обращаться с таблицей. Для работы с активным листом мы используем функцию getActiveSheet(), в данном интерфейсе.
Все оперирование внутри листа возможно только внутри диапазонов. Даже если вам нужно будет работать с какой-то конкретной ячейкой, для нее сначала нужно задать диапазон. В выбранном листе задать диапазон можно методом getRange("A1:B2"). Аргументом этого метода можно передать строку, содержащую диапазон ячеек в привычной нам из Excel виде. Внутри заданного диапазона выбор ячейки осуществляется методом getCell(row, col), где row и col это номер строки и столбца ячейки внутри диапазона, соответственно.

Для получения веб страницы мы используем класс UrlFetchApp, у которого есть нужный для нас метод fetch(url). Чтобы можно было работать с результатом работы этого метода, нужно привести его к виду текста, с помощью функции getContentText(). После выполнения этой функции в переменной будет сохранен исходный код страницы, с которым можно работать так, как вам хочется. В принципе, никто не запрещает построить по полученной странице DOM дерево и работать с ним, но, как мне кажется, работа со строкой в небольших задачах, где можно в тексте вычленить нужные данные будет проще и быстрее.

Код скрипта для Google Spreadsheet

Оставь комментарий!

4 thoughts on “Как парсить данные с сайтов в таблицу Google?

  1. Андрей Александрович:

    как парсить, если нужный мне ресурс требует авторизацию?

  2. Добрый день. Очень очень оказалось полезным видео.

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

    Подразумевается, что спойлеры открывают свое содержимое по ajax-запросу.

    Спасибо. Уверен, что подскажете, куда двигаться дальше.

  3. proenerg:

    Спасибо Роман, за урок, подкорректировал для своей задачи Ваш скрипт, все работает, но есть проблема, нужно получить с сайта телефоны поставщиков, их более 36000, запускаю Ваш парсер он работает, но останавливается около 800 обработанных страниц, пишет «превышено максимальное время выполнения». Как решить эту проблему?

  4. slavik.dolganchik:

    Роман, очень полезная штука. Можете подсказать как такой парсер сделать для вебархива? Нужно вытащить инфо с https://archive.org/web/ где есть заархивирован старий сайт. Вопрос, как там проходить по страницам сайта?

Добавить комментарий