Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет kouzdra ([info]kouzdra)
@ 2013-11-26 11:29:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
Вопрос программерский возник:
Когда я поигрался по поводу PPS в этом посте, я внезапно осознал, что писать роботов для веба в виде броузерного скрипта очень удобно - документ практически гарантировано корректно разобран, есть инфраструктура для серфинга, выполнения скритов, кук etc etc.

Но если хочется stand-alone тул, то неудобно цепляться за сам броузер. Наверняка же есть "просто библиотеки" такого типа, не завязанные на морду.


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


[info]do_
2013-11-26 17:57 (ссылка)
не очень разумно делать бота на основе цельного браузера: говноскрипты тормозить будут. Разве что для таких случаев, когда там саморасшифровывающийся жабаскрипт.

(Ответить) (Ветвь дискуссии)


[info]kouzdra
2013-11-26 19:22 (ссылка)
Хромовский жабаскрипт кстати очень быстрый - почти как "нормальные" языки - V8 его в нативный код компилит и с всякими оптимизациями и анализами.

Но дело не в этом - возможность выполнять жабаскрипт нужна просто потому, что щас половина говносайтов без этого уже не живет вовсе, а так конечно хочется для своего кода просто АPI и чтобы на чем-то нормальном свою логику писать. Вопрос собственно что именно хочется либы, но такой чтобы внутри был почти броузер, только без рендеринга.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]do_
2013-11-26 19:33 (ссылка)
А зачем нужно, чтоб говносайт "жил" в боте?

Бот так или иначе будет извлекать какие-то данные из страницы,
и для того, чтобы он это успешно делал, придётся провести
кое-какой анализ страницы. Хотя бы на уровне "просмотр кода элемента"
в хроме. Если этот анализ всё равно нужно сделать, не так уж сложно
сделать это на уровне исходника документа, а не разрендеренной страницы.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]kouzdra
2013-11-26 19:36 (ссылка)
Затем, например что щас половина линков не href, а запуск скрипта, который уже куда-то переходит, ну и половина страниц теми же скриптами 2/3 контента в себя догружает уже "на лету".

Если оно грамотно сделано под вариант "без жабаскрипта" то конечно пофиг - но часто оно уже просто не работает.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]do_
2013-11-26 19:42 (ссылка)
В таких случаях запускаю сниффер, или прозрачный прокси, который печатает
все запросы, или ещё хороший способ -- перегрузить jQuery.ajax, чтобы
печатал агрументы запроса в консоль

хотя, конечно, использование встроенного браузера немного сократит время
анализа, а с другой возникает вопрос -- а откуда, собственно, мы будем
знать, что всё уже загрузилось?

(Ответить) (Уровень выше)


(Анонимно)
2013-11-26 23:33 (ссылка)
Node.js
JQuery для него имеется, весьма удобно получается.
Вроде и на мозиловском движке что-то было

(Ответить)


[info]ifp5
2013-11-27 03:42 (ссылка)
К сожалению, гарантированный результат можно получить только цепляясь за браузер. Впрочем есть проекты браузеров с оторванным гуем, можно нагуглить по слову "headless" (например, "headless browser"). Ну или, если сайт не очень сложный, использовать HtmlUnit.

(Ответить)