1

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

Смотрите изображение для примера

3 ответа3

1

Традиционно вы загружаете страницы HTML и ищете некоторую константу, которая непосредственно предшествует вашим данным. к сожалению, ваш вопрос не имеет универсального ответа, так как каждый сайт отличается. Я написал скрипты на python, Bash и даже на C #, которые раскрывают страницу, ищут нужный тег и извлекают его.

Взгляните на источник страниц и найдите свой кусок данных (для этого очень полезен firebug) и определите начальный и конечный разделители для контента, который вы хотите извлечь.

Вот несколько сценариев, которые люди написали для чистки XKCD.com http://forums.xkcd.com/viewtopic.php?f=11&t=63037

1

Вы можете попытаться очистить страницу, используя Javascript (в форме скрипта Greasemonkey / Userscript / расширения / букмарклета / ...). Букмарклет означает, что вам нужно вручную перейти на эту страницу и выполнить ее. Другие методы позволяют передавать данные прямо в вашу базу данных (локальное хранилище при использовании привилегированного расширения или веб-сервера).

Написание кода Javascript требует знаний в этой области, вы должны искать такие функции DOM, как document.getElementById, getElementsByClassName и querySelector или XPath. Поскольку Etsy уже использует jQuery, вы также можете использовать jQuery для получения данных.

В качестве альтернативы очистке рассмотрите возможность использования API, если он доступен. Быстрый поиск выявил следующие страницы, которые могут (или не могут) помочь вам:

0

Это во многом зависит от того, в какой области находится ваш опыт, но в прошлом для такого рода операций я обычно использовал PHP Simple HTML DOM Parser. Он действительно прост в использовании, а документация довольно информативна.

Синтаксис для запроса DOM довольно похож на jQuery, если вы использовали это раньше.

Вы можете использовать более подробный find('div[id=foo]'); и find('div[class=bar]'); но может также использовать более компактный jQuery-подобный метод определения селекторов с помощью find('#foo'); и find('.bar'); ,

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

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .