В Google Таблицах есть несколько функций импорта
- ИМПОРТ ДАННЫХ
- ИМПОРТФИД
- IMPORTHTML
- IMPORTXML
Иногда вышеуказанные функции возвращают такие ошибки, как #N/A Imported content is empty
и хотели бы убедиться, что нет проблем с импортируемым содержимым ресурса.
Как мне узнать, могут ли эти функции получить контент, который я хочу импортировать?
Я знаю, что также существует IMPORTRANGE, но эта функция может импортировать контент только из электронных таблиц Google Sheets.
2 ответа
Tl; Dr
Если контент добавляется динамически (с помощью Javascript), его нельзя импортировать с помощью встроенных функций Google Sheets. Кроме того, если веб-мастер веб-сайта принял определенные меры, эта функция не сможет импортировать данные.
Контент добавляется динамически
Чтобы проверить, добавляется ли контент динамически с помощью Chrome,
- Откройте URL-адрес исходных данных.
- Нажмите F12 , чтобы открыть Инструменты разработчика Chrome
- Нажмите Контроль+сдвиг+п , чтобы открыть меню команд.
- Начать печатать
javascript
, Выбрать Отключить JavaScript, а затем нажмите Войти для запуска команды. JavaScript отключен.
JavaScript останется отключенным на этой вкладке, пока у вас открыт DevTools.
Перезагрузите страницу, чтобы увидеть, отображается ли контент, который вы хотите импортировать, если он показан, то его можно импортировать. с помощью встроенных функций Google Таблиц, иначе это невозможно, но можно было бы использовать другие средства для выполнения веб-скрапинг.
Согласно с Википедия,
Веб-скрапинг, веб-сборщик, или извлечение веб-данных является очистка данных используется для извлечение данных от веб-сайты.
Использование robots.txt для блокировки поисковых роботов
Веб-мастера могут использовать файл robots.txt для блокировки доступа к веб-сайту. В таком случае результат будет #N/A Could not fetch url
.
Использование агента пользователя
Веб-страница может быть спроектирована так, чтобы вместо данных возвращалось специальное настраиваемое сообщение.
IMPORTDATA, IMPORTFEED, IMPORTHTML и IMPORTXML могут получать контент из ресурсов, размещенных на веб-сайтах, которые:
- Общедоступно. Это означает, что для доступа к ресурсу не требуется авторизация / вход в какую-либо службу.
- Контент «статический». Это означает, что если вы откроете ресурс, используя опцию просмотра исходного кода современных веб-браузеров, он будет отображаться как простой текст.
- ПРИМЕЧАНИЕ. Инструмент проверки Chrome показывает проанализированную модель DOM; в других работах — фактическая структура / содержание веб-страницы, которые могут быть динамически изменены с помощью кода JavaScript или расширений / плагинов браузера.
- Контент имеет соответствующую структуру.
- IMPORTDATA работает со структурированным контентом как
csv
илиtsv
не имеет значения расширение файла ресурса. - IMPORTFEED работает с размеченным контентом как ATOM / RSS
- IMPORTHTML работает с размеченным контентом как HTML, который включает правильно размеченный список или таблицы.
- IMPORTXML работает с размеченным контентом как XML или любой из его разновидностей, например XHTML.
- IMPORTDATA работает со структурированным контентом как
- Серверы Google не блокируются с помощью файла robots.txt или пользовательского агента.
На Валидатор разметки W3C есть несколько инструментов для проверки, правильно ли размечены ресурсы.
Что касается проверки CSV Существуют ли известные службы для проверки файлов CSV
Стоит отметить, что таблица
- должно быть достаточно места для импортированного контента; Согласно данным, в Google Sheets ограничение на размер таблицы составляет 5 миллионов ячеек. эта почта ограничение столбцов 18278 и 50 тысяч символов в качестве содержимого ячейки даже в виде значения или формулы.
- он плохо справляется с большим содержимым ячеек; «предел» зависит от размера и разрешения экрана пользователя, так как теперь можно увеличивать / уменьшать масштаб.
использованная литература
- https://developers.google.com/web/tools/chrome-devtools/javascript/disable
- https://en.wikipedia.org/wiki/Web_scraping
Связанный
- Использование скрипта Google Apps для очистки динамических веб-страниц
- Сбор данных с веб-сайта с помощью vba
- Есть ли бесплатный инструмент для парсинга веб-страниц / программное обеспечение?
- Рекомендации по инструментам для очистки веб-страниц, требующим минимальной установки
Следующий вопрос касается другого результата, #N/A Could not fetch url
(возможно, это не ответ, но вот краткое руководство по скрапингу)
- все начинается с отключения JavaScript для веб-сайта, чтобы посмотреть, что осталось, а что можно выбросить
- первый выбор всегда
IMPORTHTML
и медленно (1 на 1 ряд) потянули вниз
=IMPORTHTML("URL"; "TABLE"; ROW(A1)-1)
- если это не удается, повторите это с помощью:
=IMPORTHTML("URL"; "LIST"; ROW(A1)-1)
- если это тоже не удается, переключитесь на
IMPORTXML
=IMPORTXML("URL"; "//*")
- если это возвращает что-то кроме
#N/A
его можно либо сузить с помощью XPath, либо задать регулярное выражение / запросить. если все равно не повезло, есть возможность использовать вызовы API или данные JSON вместо общедоступного URL (если существует)
=IMPORTXML("URL"; "//div[@class="primary"]")
- если
IMPORTXML
не могу получить JSON, тогда есть пользовательскиеIMPORTJSON
функции на GitHub - в крайнем случае есть
IMPORTDATA
и очистка исходного кода, например:
=ARRAY_CONSTRAIN(IMPORTDATA("URL"); 8000; 20)
=REGEXEXTRACT(QUERY(ARRAY_CONSTRAIN(IMPORTDATA("URL"); 3000; 2); "where Col1 contains 'meta table id something'"); ">(.+)<")
- и если после всех попыток результат все равно
#N/A
, всегда есть время сдаться и найти аналогичный сайт, который можно очистить
(еще несколько примеров RL упомянутых техник Вот)