Запустить phantomjs на хостинге python

Дешевый хостинг
Промо-код для получения скидки: 42b081-10

Всем привет.
Просьба помочь разобраться с причиной не работающего скрипта на хостинге https://beget.com/ru.
Прикладываю сам файл скрипта.

Основная его цель скрипта:
1. сходить на сайт
2. сделать список ссылок url
3. записать список в файл.

Локально скрипт работает и все делает!
Но как его запускаю на хостинге, происходит просто создание и сохранение пустого файла.
Тех.поддержа хостинга разводит руками, и говорит обратиться к разработчику, но блин локально то все работает.

Вот отрывок ответа тех.поддержки. Обращу внимание, дабы не вводить в заблуждение,речь идет о другом скрипте, но смысл работы один и тот же, т.к. используются одинаковые модули и библиотеки.

«Как я сообщил ранее, согласно логу трассировку скрипт действительно подключается к серверу 104.20.208.69 и обменивается с ним каким-то данными.

Затем соединение закрывается и начинается обработка результатов обмена. На это косвенное указывает выделение памяти в процессе работы скрипта.

Далее на запись открывается файл out.json.

Который пытается получить доступ к файлу устройства, в данном случае TCGETS — это последовательный порт или, скорее терминал, и после того, как это сделать не удается, в файл пишется пустой массив и он закрывается. С описание вызова ioctl можно ознакомиться в сети, например http://www.opennet.ru/man.shtml?category=2&topic=ioctl и https://www.opennet.ru/docs/RUS/lkmpg/node18.html. С полный strace-логом в файле python.log в корне аккаунта. Аналогичное поведение наблюдается и при запуске через консоль. Мы не являемся разработчиками, но также удалось установить, что переменная data в строке 952 формируется пустой или не формируется совсем и в файл out.json записывается . В данном случае можем лишь рекомендовать обратиться к разработчику скрипта.»

P.S. Большая просьба помочь, что нужно сделать, чтобы скрипт работал на хостинге.

Прикреплённый файлы:
Up_capagain_bounty.rar (18,0 KБ)

Такое ощущение что вам поручили это сделать за деньги и вы решили схитрить.
fant59
Обращу внимание, дабы не вводить в заблуждение,речь идет о другом скрипте, но смысл работы один и тот же, т.к. используются одинаковые модули и библиотеки. Факт того, что используются одни и те же модули не делает эти скрипты одинаковыми, что мешало приложить полный скрипт? fant59
Локально скрипт работает и все делает!
Но как его запускаю на хостинге, происходит просто создание и сохранение пустого файла. Не пойму, в чем проблема то? Если в локалке все работает, и у хостинга есть подключение к инету, то тогда все норм должно быть. и да, пример. У PythonAnywere для бесплатных аккаунтов есть ограничения для доступа в Интернет. Проверь r.text, тот ли этот сайт, проверь r.status_code и все-все. Сделай принт всего что есть. После каждого действия делай принт всех результатов, даже тех, которые уже известны. В питоне нету официального debub мода, так что делаем все своими ручками.

P.S. Не относится к делу, но после запроса лучше делать r.close(), все-таки подключение остается, не хорошо так)

fant59
Прикреплённый файлы: А где код на питоне, который создаёт out.json ?

DamMercul
Такое ощущение что вам поручили это сделать за деньги и вы решили схитрить. r.text — проверяли, он работает на основе lxml — с ним проблем нет.
Глючит бьютифулсуп по какой-то не понятной причине.

а что вам мешает отдебажить код прямо на сервере? pdb, ipdb и тп инструменты подходят для этого.

По материалам python.su

Я использую PhantomJS для Windows и получаю доступ к файлам через командную строку. Теперь я хочу установить его на сервере, на котором я работаю на локальном хосте, поэтому хочу, чтобы он был установлен на Apache, чтобы я мог интегрировать Phantom с моими html и PHP, которые будут использоваться на веб-странице. Я использую Windows 8.1 и Apache Server для localhost.

Могу ли я на самом деле это сделать? Как использовать его в веб-сервисах сейчас? Как я буду использовать его, если мне нужно сделать свою онлайн-сеть? должен ли я попросить моего хостинг-провайдера разместить эту вещь на сервере для меня?

Я использую phantomJS для разработки веб-службы, которая берет URL-адрес в качестве входных данных и возвращает файл изображения на снимке экрана веб-сайта.

«Установка» PhantomJS просто добавляет свой путь к переменной среды PATH.

Поскольку вы используете php, вы будете вызывать PhantomJS из вашего php-скрипта, как показано здесь, где вам нужно предоставить полный путь к исполняемому файлу PhantomJS. Вы также можете использовать putenv для расширения PATH непосредственно из php, как показано здесь .
Вы можете вернуть что-то из скрипта PhantomJS в переменную $output exec и затем проанализировать ее.

PhantomJS предоставляет модуль веб-сервера . Вы можете написать скрипт, который прослушивает запросы, создает page по запросу и возвращает изображение. Вы как-то запускаете скрипт при запуске или вместе с apache. Также можно написать оболочку, чтобы вы могли запускать ее как службу Windows. Возможно, вы сможете передавать запросы через Apache, чтобы PhantomJS не был полностью открыт снаружи.
Хотя этот вариант немного вероломный, потому что PhantomJS может потерпеть неудачу, и тогда вам понадобится какой-то механизм возрождения. Ваш скрипт также может столкнуться с утечкой памяти.

Оба указанных параметра не зависят от того, как вы возвращаете изображение. Есть несколько возможностей.

  1. По запросу создайте случайное и уникальное имя файла и render страницу в файл. Затем вы можете отправить имя файла клиенту, который впоследствии может запросить его. Это требует двух запросов.
  2. По запросу визуализируйте страницу через renderBase64 для получения данных обычного изображения. Теперь вы можете отправить данные изображения непосредственно в ответ, и клиент может поместить его в DOM через data: -URI .

вот ответ из приведенного выше URL-адреса. Я изменил его в соответствии с моими дорожками

Я пытаюсь запустить это, но он дает следующее

Массив ([0] => ‘.’ Не распознается как внутренняя или внешняя команда, [1] => оперативная программа или командный файл.)

в моей корневой папке (C: / xampp / htdocs) есть папка ScreenShotWeb, где я разместил EXE из PhantomJS + все файлы.

По материалам ruphp.com

Дешевый хостинг
Промо-код для получения скидки: 42b081-10