Хобрук: Ваш путь к мастерству в программировании

Визуализация PhantomJS отдельного кадра не работает должным образом

Я использую PhantomJS как метод создания локальной копии веб-сайта, у меня есть функция, которая проходит структуру фрейма веб-сайта и захватывает содержимое фрейма по мере его поступления, сохраняя его в глобальном массиве. Эта часть работает нормально на данный момент, проблема в следующем:

На каждом этапе я пытаюсь преобразовать кадр в кодированное изображение Base64, используя

var temp =  require('webpage').create();
temp.content = currpage.frameContent; //set the temp page to be the current frame
var b64 = temp.renderBase64('png');

Если я просто экспортирую currpage.frameContent в файл и открою его, я смогу увидеть его содержимое, а также открыть его в браузере и увидеть, что он действительно отображает то, что должен (по большей части, рекламу).

Хотя переменная b64 не имеет значения и никаких ошибок при запуске программы не возникает.

Я также должен отметить, что b64 не всегда не имеет значения, иногда я действительно получаю правильный рендеринг фрейма, в зависимости от сайта, который я очищаю.

23.05.2014

  • как frame.Content выглядит в таких случаях? и делает ли функция render что-нибудь? 23.05.2014
  • Это стандартный закрытый html-сайт, открывается в браузере и все такое. Я заранее удаляю теги script из него, так как они больше не нужны. Render ничего не визуализирует в этих случаях. Если я вывожу содержимое фрейма в html-файл и запускаю отдельный экземпляр phantomjs, открываю страницу и отображаю ее содержимое, все работает нормально. К сожалению, я не думаю, что это будет потенциальным решением в контексте того, что я пытаюсь сделать. 23.05.2014
  • Самое странное, что в temp.content есть именно то, что я хочу, но оно просто не отображается. 23.05.2014

Ответы:


1

Через некоторое время проблема была обнаружена, хотя мы меняем направление с проектом, я опубликую, как исправить мою проблему.

Чтобы заставить временный рендериться, все, что мне нужно было сделать, это установить окно просмотра временного файла.

temp.viewportSize = {
    width: 480,
    height: 800
};
23.05.2014
Новые материалы

Создание кнопочного меню с использованием HTML, CSS и JavaScript
Вы будете создавать кнопочное меню, которое имеет состояние наведения, а также позволяет вам выбирать кнопку при нажатии на нее. Финальный проект можно увидеть в этом Codepen . Шаг 1..

Внедрите OAuth в свои веб-приложения для повышения безопасности
OAuth — это широко распространенный стандарт авторизации, который позволяет приложениям получать доступ к ресурсам от имени пользователя, не раскрывая его пароль. Это позволяет пользователям..

Классы в JavaScript
class является образцом java Script Object. Конструкция «class» позволяет определять классы на основе прототипов с чистым, красивым синтаксисом. // define class Human class Human {..

Как свинг-трейдеры могут использовать ИИ для больших выигрышей
По мере того как все больше и больше профессиональных трейдеров и активных розничных трейдеров узнают о возможностях, которые предоставляет искусственный интеллект и машинное обучение для улучшения..

Как построить любой стол
Я разработчик программного обеспечения. Я люблю делать вещи и всегда любил. Для меня программирование всегда было способом создавать вещи, используя только компьютер и мое воображение...

Обзор: Машинное обучение: классификация
Только что закончил третий курс курса 4 часть специализации по машинному обучению . Как и второй курс, он был посвящен низкоуровневой работе алгоритмов машинного обучения. Что касается..

Разработка расширений Qlik Sense с qExt
Использование современных инструментов веб-разработки для разработки крутых расширений Вы когда-нибудь хотели кнопку для установки переменной в приложении Qlik Sense? Когда-нибудь просили..