nodes
(тествано с0.10.13
)phantomjs
(тествано с1.9.2
)
За инсталацията на точна, лесно сменима версия на nodejs
е удобно да се ползва nvm.
Щом има вече работещ nodejs
, то phantomjs
се инсталира лесно: npm install phantomjs --global
Следните са текущи ограничения, които бъдат премахнати:
1. се добавят работещи [*"Death By Captcha"*](http://deathbycaptcha.com/user/login) *user* и *pass* в `/common/node/decaptcha/index.js`
mkfifo /var/tmp/brrabg
phantomjs --ignore-ssl-errors=true run.js --input=/var/tmp/brrabg --decaptcha=manual
Сега процесът ще чака за имена от /var/tmp/brrabg
. Най-често ще има друг процес, който да пълни /var/tmp/brrabg
с имена; едно име на всеки ред.
За да сработи примера можем в друг "терминал" да напишем:
echo "Иван Иванов Иванов" > /var/tmp/brrabg
По начина, който стартирахме crawler-а, ние активирахме ръчното въвеждане на CAPTCHA. Това означава, че ще трябва въведем текста от свалено във temp директорията CAPTCHA изображение:
Type in text from: /var/tmp/captcha.jpg
След като въведете текста, ще се изведат намерените бизнес занимания.
[{"company":"\"Иван\" ЕООД","title":"Управители"},{"company":"\"Иванушка\" ООД","title":"Съдружници"}]
Погледнати бяха:
- selenium-webdriver, виж след списъка за забележки по webdriver
- admc/wd, виж след списъка за забележки по webdriver
- WaterfallEngineering/selenium-node-webdriver, виж след списъка за забележки по webdriver
- n1k0/casperjs - има същия проблем като чисто phantomjs, че не може да ползва nodejs модули. тоест фактически просто е 1 допълнителен слой, който увеличава възможността за бъгове
- WaterfallEngineering/SpookyJS - прекалено много абстакция, от phantomjs до casperjs и вече отделно до nodejs.
- sheebz/phantom-proxy, wrapper, тоест няма винаги да е актуален с phantomjs, също превръща всяко повикване към phantomjs в async, което е лудост да се поддръжа
- sgentle/phantomjs-node, wrapper, тоест няма винаги да е актуален с phantomjs, също превръща всяко повикване към phantomjs в async, което е лудост да се поддръжа
- alexscheelmeyer/node-phantom, wrapper, тоест няма винаги да е актуален с phantomjs, също превръща всяко повикване към phantomjs в async, което е лудост да се поддръжа
Тези библиотеки, които следват Webdriver протокола внасят:
- Поддръжка на phantomjs под формата на WebDriver сървър. Това 100% означава време в предотратяване на crashes.
- Нова API, вместо да може да се ползва js директно. Защо трябва да се учи нов API, ако може просто с JS?
Затова: с чист phantomjs.
- Не може да се види http отговора в суров вид.
- Това, че може да се преглежда само DOM-а води до това че единствено могат да се свалят XML документи, нищо друго
- Повикването на системни програми в Phantomjs е в много начален стадии. Не може да се подават данни към
stdin
на процеса - Това прави невъзможно да се кобинират:
- Процес който сваля файл по дадено URL
- Процес, чийто
stdin
поема съдържанието на изображение и според съдържанието извършва ..нещо.