Skip to content

jQuery + node.js: баг в jsdom 0.1.21

08/12/2010

В одной из последних статей я показывал как можно использовать jsdom + jQuery чтобы доставать информацию из страниц. Похоже, сейчас этот подход не работает. Если ставить всё из npm, будут получаться примерно такие ошибки:

ENOENT, No such file or directory '/usr/local/lib/node/jsdom/js/1289918127/commentForm.js'
ENOENT, No such file or directory '/usr/local/lib/node/jsdom/js/1289918127/voting.js'
ENOENT, No such file or directory '/usr/local/lib/node/jsdom/js/1289918127/swfobject.js'
ENOENT, No such file or directory '/usr/local/lib/node/jsdom/js/1289918127/postsHandler.js'

…значит, у Вас стоит нерабочая версия jsdom — 0.1.21. В ней tmpvar попытался реализовать подгрузку и выполнение скриптов. Т.е. если разбираемая Вами страница подключает внешний js-файл, он будет загружен и выполнен в контексте созданного для страницы окна — как в настоящем браузере. Но из за бага в jsdom файл берётся не из того места, куда он сохраняется. В репозитории этот баг уже исправлен, но в npm новая версия ещё не попала. Если хотите использовать jsdom, просто поставьте через npm более старую версию:

npm install jsdom@0.1.20

Или обновите jsdom прямо из репозитория на Github.

5 комментариев
  1. Максим permalink

    Не сталкивались ли вы с замедлением паринга. Я использовал ваш search-engine за основу, взятый с гитаХаба. Наблюдается замедление парсинга в арифметической прогрессии. Использовал как node-htmlparser так и domjs
    Безрезультатно (

    • Честно говоря не сталкивался. Хотя оставлять парсер надолго мне конечно случалось (на ночь, чтобы сделать кучу запросов к Хабру, например). Этот краулер был сделан на скорую руку и я вполне допускаю что что-то где-то там течёт🙂

      А node-htmlparser и jsdom Вы ставили вместо libxmljs? Больше то в краулере особо ничего и нет.

  2. Максим permalink

    Также я провел тест. Если парсить одну и туже страницу, скажем 100 раз. Скорость одна и та же. Это наблюдается при парсинге разных страниц.

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

Заполните поля или щелкните по значку, чтобы оставить свой комментарий:

Логотип WordPress.com

Для комментария используется ваша учётная запись WordPress.com. Выход / Изменить )

Фотография Twitter

Для комментария используется ваша учётная запись Twitter. Выход / Изменить )

Фотография Facebook

Для комментария используется ваша учётная запись Facebook. Выход / Изменить )

Google+ photo

Для комментария используется ваша учётная запись Google+. Выход / Изменить )

Connecting to %s

%d такие блоггеры, как: