2015-08-02 7 views
0

Имейте очень странную проблему. С 1-2 недель я не могу создавать скриншоты страниц Craigslist с PhantomJS на Digital Ocean. Кто-нибудь знает, что может быть проблемой и почему она больше не работает?Невозможно создать скриншот Craiglist с PhantomJS на Digital Ocean

Он всегда работал хорошо и до сих пор отлично работает, когда я запускаю его локально на своем ноутбуке. Он создает скриншот в течение 2-4 секунд. Тем не менее, запускать то же самое (независимо от того, есть ли в специальном Docker-Container, как тот, который используется локально или установлен непосредственно на хосте) на Digital Ocean продолжает навсегда загружаться, и если мне повезет и подождите достаточно долго, я получаю скриншот после 7- 10+ минут.

Пробовал его на разных капельках (существующий & совершенно новый) в разных зонах (SF & Frankfurt), но всегда имеет ту же проблему. Об этом уже обращался в Digital Ocean. Они смогли воспроизвести проблему, но, по их словам, на их стороне ничего не изменилось, и они также не знают, что может вызвать это. Они обвиняют PhantomJS или Craigslist.

Его можно воспроизвести очень легко. На новом Droplet (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. Файл под названием "тест-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 тест-screenshot.js".

Спасибо!

+0

Пожалуйста, зарегистрируйтесь на события 'onConsoleMessage',' onError', 'onResourceError',' onResourceTimeout' ([Пример] (https://gist.github.com/artjomb/4cf43d16ce50d8674fdf)). Возможно, есть ошибки. –

+0

Спасибо! Но, к сожалению, никто из них не стреляет. Он просто загружает очень долгое время без выхода и, в конце концов, снимок экрана. – janober

ответ

1

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

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

+0

Ах, спасибо большое! Также ожидалось нечто подобное. Был длинный обмен с ними, но они всегда говорят, что это определенно не они. Не знала, что есть судебный процесс, но тогда имеет смысл тогда. Я уже начал мигрировать к другому провайдеру. Потому что он работает действительно везде, кроме капель. – janober

 Смежные вопросы

  • Нет связанных вопросов^_^