Невозможно создать снимок экрана Craiglist с PhantomJS в Digital Ocean

Есть очень странная проблема. Уже 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».

Спасибо!


person janober    schedule 02.08.2015    source источник
comment
Пожалуйста, зарегистрируйтесь для участия в мероприятиях onConsoleMessage, onError, onResourceError, onResourceTimeout (пример). Может есть ошибки.   -  person Artjom B.    schedule 02.08.2015
comment
Спасибо! Но, к сожалению, ни один из них не срабатывает. Он просто загружается очень долго без какого-либо вывода, и в конце концов скриншот есть.   -  person janober    schedule 03.08.2015


Ответы (1)


Похоже, что Craigslist намеренно замедляет трафик с IP-адресов Digital Ocean. В области DC домашняя страница CL загружается> 55 секунд, когда я использую свой VPN, размещенный в Digital Ocean. Без VPN время загрузки нормальное (<1000 мс). Остальные сайты корректно работают через VPN.

Я предполагаю, что это технический ответ на их недавние судебные иски с участием парсеров их сайта.

person NoNetNeutralityFromCL    schedule 21.08.2015
comment
Ах, спасибо тебе большое! И ожидал чего-то подобного. У них был долгий обмен мнениями, но они всегда говорят, что это точно не они. Понятия не имел, что был судебный процесс, но тогда это имеет смысл. Я уже начал переходить на другого провайдера. Потому что он действительно работает везде, кроме их капель. - person janober; 22.08.2015