Есть очень странная проблема. Уже 1-2 недели я не могу создавать скриншоты страниц Craigslist с помощью PhantomJS в Digital Ocean. Кто-нибудь знает, в чем может быть проблема и почему она больше не работает?
Раньше он всегда работал нормально и все еще отлично работает, когда я запускаю его локально на своем ноутбуке. Скриншот создается за 2-4 секунды. Однако запуск одного и того же (независимо от того, находится ли он в специальном Docker-контейнере, таком как тот, который используется локально или установлен непосредственно на хосте), Digital Ocean продолжает загружаться вечно, и если мне повезет и я подожду достаточно долго, я получаю снимок экрана примерно через 7- 10+ минут.
Пробовал на разных каплях (существующих и совершенно новых) в разных зонах (Сан-Франциско и Франкфурт), но всегда возникала одна и та же проблема. Об этом уже связывался с Digital Ocean. Они смогли воспроизвести проблему, но, по их словам, с их стороны ничего не изменилось, и поэтому они понятия не имеют, что могло ее вызвать. Они обвиняют PhantomJS или Craigslist.
Его очень легко воспроизвести. В новой капле (Ubuntu 14.04) следующий код установит PhantomJS:
# Install dependencies
sudo apt-get install -y libicu52 libjpeg8 libfontconfig libwebp5
# Install PhantomJS
cd /usr/local/share && \
curl -L -O https://github.com/bprodoehl/phantomjs/releases/download/v2.0.0-20150528/phantomjs-2.0.0-20150528-u1404-x86_64.zip && \
unzip phantomjs-2.0.0-20150528-u1404-x86_64.zip && \
ln -s /usr/local/share/phantomjs-2.0.0-20150528/bin/phantomjs /usr/local/bin/phantomjs
Очень простой пример сценария для создания снимка экрана продукта в Craigslist. Файл под названием "test-screenshot.js" с таким содержанием:
var page = require('webpage').create();
var url = 'http://vancouver.craigslist.ca/van/ctd/5148995470.html';
page.open(url, function() {
page.render('craigslist.png');
phantom.exit();
});
Для запуска скрипта: «phantomjs test-screenshot.js».
Спасибо!
onConsoleMessage
,onError
,onResourceError
,onResourceTimeout
(пример). Может есть ошибки. - person Artjom B.   schedule 02.08.2015