LINUX.ORG.RU

(Эрланг) (Нуботред)


0

1

Добрый день! Я в рамках самообучения эрлангу пишу программу которая должна с нашего местносайта обьявлений собирать новые обьявления и обрабатывать их выбирая те которые мне нужны.

Если с экспертной системой и её оболочкой мне допустим понятно что делать, то с модулем который собирает информацию с сайта я затупил.

Подскажите что-то почитать на эту тему. Сайт выдаёт выдачу с помощью жава скрипта я так понел.

Пусть я не знаю другия языков программирования (это почти правда), и bash тоже совсем не знаю. У меня совсем не пошел C в своё время и я всё забросил, а эрланг понравился. Он в моём вкусе, да.

Спасибо за внимание, нуб.

Спасибо за внимание, нуб.

Выглядит крайне неоднозначно...

Кинул бы ссылку на сайт. Что-то мне не особо верится что «местносайт» всё верстает javascript'ом.

И да, для таких задач есть perl.

helios ★★★★★ ()

Ну так json скорее всего, если javascript отдаёт.

Библиотека есть на github.

adzeitor ()
Ответ на: комментарий от helios

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

Посоветуйте пожалуйста книгу/мануал, именно для такой задачи например.

Lolnab ()
Ответ на: комментарий от Sosiska

<script type=«text/javascript»> <script src=«http.........................or.js»> <script>

Там 5 таких скриптов, буду изучать.

Lolnab ()
Ответ на: комментарий от Lolnab

тут вопрос не в эрланге а в программировании в общем случае

тебе нужно пройти несколько этапов

1) получать странички 2) парсить странички 3) анализировать странички

для каждого шага, возможно, понадобится своя библиотека

алгоритм в самом простом случае

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

2) получаем все нужные нам скрипты. парсим (если это json, например) или с помощью регулярок (или самопальным парсером) получаем из них нужную нам информацию

3) обрабатываем нужную нам информацию

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

trashymichael ★★★ ()
Ответ на: комментарий от Lolnab

нет, ты не понял.
открой firebug, там раздел network. обнови страницу.
ты увидишь список всех ресурсов, которые запрашивает твой браузер, чтобы отобразить контент.

потом ищи в этих файлах 'текст объявляния' или что-ты хочешь оттуда сграбить.
если adzeitor прав, то это будет json файл.

в любом случае, ты найдешь файл, в котором будет нужное тебе содержание. Дальше смотри внимательно как файл называется и откуда он вызивается, чтобы суметь для любой страницы скриптом запросить контент-файл(json или что-то еще).

как-то так...

Sosiska ()
Ответ на: комментарий от Sosiska

<dd class=«value »> около 11,3 л/100 км </dd> <dt class=«term »> Расход топлива (городской): </dt> <dd class=«value »> около 15,3 л/100 км </dd> <dt class=«term »> Расход топлива (загородный): </dt> <dd class=«value »> около 8,9 л/100 км </dd>

Содержимое выглядит как-то так, освоился с firebug

В общем там хтмл <div class=«tab1 page»> <div id=«header» class=«header»> <div id=«D_08_SKY» class=«D_08_SKY_ru adbanner»> <div class=«content»> <div class=«breadcrumbs»> <div class=«nextPage»> <div class=«clear»> </div> <div class=«tabs»> <div class=«box »> <div class=«rc-t rc-tabs»> </div> <div class=«box-content-des»> <div class=«row headline»> <div class=«row cols1 overviewTab»> <div class=«row cols2»> <div class=«col col1»> <div class=«col-content»> <div class=«block feature-list»> <div class=«box-content»> <div class=«furtherTechnicalData»> <div class=«block detailbox»> <h3>Другие технические характеристики</h3> <dl class=«box-content feature-pairs»> <dt class=«term »> Число мест: </dt> <dd class=«value »> 7 </dd> <dt class=«term »> Расход топлива

Lolnab ()
Ответ на: комментарий от trashymichael

Спасибо.

Ну а насчёт тяжело - учится надо же. Эта задача ничем не хуже других.

Lolnab ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.