17.09.2014, 23:50
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza,я думал если так то выполняться скрипты, то чего мне не нужно..
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
17.09.2014, 23:55
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Сообщение от cyber
|
kobezzza,я думал если так то выполняться скрипты, то чего мне не нужно..
|
Ну вообще, он и так и так их выполняет, т.к. этот тот же браузер. Он также просчитывает вёрстку: геометрию, стили и т.д., причём можно даже сделать скриншот загруженой страницы.
Я хз, но возможно есть опция "отключить JS" (почему бы и нет?), но у меня таких задач не было и я сам не копал, так что изучай доку.
|
|
18.09.2014, 01:42
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza,
нашел, это делаеться так
page.settings.javascriptEnabled = false;
http://phantomjs.org/api/webpage/property/settings.html
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.09.2014, 01:44
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Теперь остался последний вопрос нужен халявный хостинг где будет работать phantomjs
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.09.2014, 02:13
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
И что за бред твориться там внутри, так не работает
var matches = page.evaluate(function() {
return {
upcoming: document.getElementById("upcoming-matches"),
fallback: document.getElementById("fallback-matches")
}
});
а так работает
var upcoming = page.evaluate(function() {
return document.getElementById("upcoming-matches")
});
var fallback = page.evaluate(function() {
return document.getElementById("fallback-matches")
});
И код внутри page.evaluate исполняеться только return?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.09.2014, 02:35
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Хотя если правильно вкурил, то самый простой и удобный вариант написать обычный js скрипт, и потом просто вернуть результат через phantomejs?
И вообще какие есть альтернативы phantom, желательно штуки работающие как nodejs модуль (если такое вообще есть)?
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.09.2014, 08:34
|
|
Быдлокодер;)
|
|
Регистрация: 19.11.2010
Сообщений: 4,338
|
|
Цитата:
|
Теперь остался последний вопрос нужен халявный хостинг где будет работать phantomjs
|
Любой хостинг с поддержкой CGI, а их over9000.
Цитата:
|
И что за бред твориться там внутри, так не работает
|
Цитата:
|
The execution is "sandboxed", there is no way for the code to access any JavaScript objects and variables outside its own page context. An object can be returned from evaluate(), however it is limited to simple objects and can't contain functions or closures.
|
Я думаю были причины.
Цитата:
|
И код внутри page.evaluate исполняеться только return?
|
Нет, там можно писать любой код.
Цитата:
|
И вообще какие есть альтернативы phantom, желательно штуки работающие как nodejs модуль (если такое вообще есть)?
|
Есть модуль phantomjs под ноду, уже давал ссылку выше. А что касается альтернатив, то это самое лучшее из возможных решений и мне абсолютно непонятно, чем оно тебе не нравится (ну кроме того, что нужно изучать новое и поэтому сразу может не получатся, но это же только плюс).
Последний раз редактировалось kobezzza, 18.09.2014 в 08:40.
|
|
18.09.2014, 10:38
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
kobezzza,
Спасибо, а про новое, доки в любя случае прийдеться ковырять, так что особо нет разницы phantom это или другая либа.
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
18.09.2014, 11:01
|
|
猫
|
|
Регистрация: 07.06.2007
Сообщений: 7,504
|
|
Сообщение от kobezzza
|
это самое лучшее
|
Одно из лучших.
__________________
Последний раз редактировалось Gozar, Сегодня в 24:14.
|
|
18.09.2014, 21:28
|
|
I am Student
|
|
Регистрация: 17.12.2011
Сообщений: 4,415
|
|
Сообщение от kobezzza
|
Я думаю были причины.
|
Тогда как удобно сделать что то в таком роде не могу понять, в примерах не нашел...
Задача состоит в том что бы хтмл с блока upcoming-matches (который там в виде строки) превратить в нужный мне объект..
Как это быстро и удобно сделать, возможно без использования phantomjs
var upcoming = page.evaluate(function() {
var upcom = document.getElementById("upcoming-matches"), // тут хтмл
div = document.createElement( "div" ); // делаем контейнер
div.id = "template-dom-upcoming";
div.innerHTML = upcom.innerHTML; // записываем его в хтмл
document.body.appendChild( div ); // закидыаем его в дом
return document.getElementById("upcoming-matches");
});
__________________
Цитата:
|
Если ограничения и условия описываются как "коробка", то хитрость в том что бы найти именно коробку... Не думайте о чем то глобальном - найдите коробку.
|
|
|
|
|