иногда парсю сайты на node.js и пользуюсь этой штукой
node.io
делаю в два захода, в первом заходе собираю урлы в файлы, вторым заходом через
input/output скармливаю файл с урлами и на выходе получаю что мне надо.
В отличие от jsdom, который при долгой работе просто адово течёт и сделать с этим ничего нельзя, node.io работает без проблем. В
wiki много понятных примеров.
Если вам не нужны конструкции «div > a», парсер node.io работает только с CSS1 селекторами, хотя jsdom тоже можно подключить.