Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 04.11.2012, 09:43
Профессор
Отправить личное сообщение для DjDiablo Посмотреть профиль Найти все сообщения от DjDiablo
 
Регистрация: 04.02.2011
Сообщений: 1,815

ну а что если парсить, при помощи php ?.

если парсить ручками, раз в день или раз в неделю
<?
	$ch = curl_init (); // инициализация
	curl_setopt ($ch , CURLOPT_URL , "http://www.oddsportal.com/soccer/armenia/premier-league-2010/results/page/2/");
	curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0"); // каким браузером будем прикидываться
	curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); // вывод страницы в переменную
	$content = curl_exec($ch); // скачиваем страницу
	curl_close($ch); // закрываем соединение 

        echo $content;
?>

<script>
   setTimeout(function(){
		alert("Привет я внедрённый скрипт, когда страница будет открыта я извлеку все понравившиеся мне данные");     
   },1000)
</script>


если хочешь чтобы парсилось при открытии страницы пользователем.
<?
	$ch = curl_init (); // инициализация
	curl_setopt ($ch , CURLOPT_URL , "http://www.oddsportal.com/soccer/armenia/premier-league-2010/results/page/2/");
	curl_setopt ($ch , CURLOPT_USERAGENT , "Mozilla/5.0"); // каким браузером будем прикидываться
	curl_setopt ($ch , CURLOPT_RETURNTRANSFER , 1 ); // вывод страницы в переменную
	$content = curl_exec($ch); // скачиваем страницу
	curl_close($ch); // закрываем соединение 
?>
<iframe id="content" style="display:hidden;"> <?=$content ?></iframe>

//вот здесь твой сайт
//бла бла бла

<script>
   setTimeout(function(){
		alert("Привет я скрипт, когда страница будет открыта я извлеку все понравившиеся мне данные из фрэйма content и вставлю их в свой сайт");     
   },1000) 
</script>


Разьясню как работает и почему.
1)сначало курл на сервере получает страницу которую надо распарсить
2) затем генерируется html, контент с вражеского сайта вставляется в фрейм. Фрейм очень важно создан на нашей странице и никакой связи с кросс доменными запросами неимеет
3) страница уходит на браузер
4) в фрейме отработают скрипты с вражеского сайта
5) наш скрипт заберёт из фрейма всё что захочет, проблем с этим небудет так как для создания в браузере кросс доменного запроса небыло. Эту операцию как вы помните мы проделали на сервере в первом шаге, и браузер о ней конечно нечего не знает

На самом деле PHP используется лишь как один из способов решения кроссдоменного ограничения, думаю контент можно вставить в фрейм любым другим из доступных способов, просто этот на мой взгляд самый изящный
kpps67
__________________
Лучше калымить в гандурасе чем гандурасить на колыме

Последний раз редактировалось DjDiablo, 04.11.2012 в 10:17.
Ответить с цитированием
  #12 (permalink)  
Старый 11.11.2012, 00:08
Интересующийся
Отправить личное сообщение для psixojoker Посмотреть профиль Найти все сообщения от psixojoker
 
Регистрация: 23.03.2012
Сообщений: 12

Спасибо, интересный подход с iframe'ом :-)

Однако уже реализовал парсер на PhantomJS. Работает.)

Спасибо всем за помощь.
Ответить с цитированием
  #13 (permalink)  
Старый 27.08.2013, 03:44
Новичок на форуме
Отправить личное сообщение для irmscher Посмотреть профиль Найти все сообщения от irmscher
 
Регистрация: 27.08.2013
Сообщений: 1

Добрый день. Можете пожалуйста привести пример как парсите Javascript с помощью phantomjs?

У меня динамическая каптча на странице которую я не могу спарсить через PHP GET:

Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Получить список ВСЕХ элементов DOM Почемучкин Events/DOM/Window 7 16.04.2012 11:33
Выполнение JS-кода после загрузки страницы (НЕ window.onload!) fox Events/DOM/Window 1 14.02.2011 00:59
JS, RDFa, DOM, XML - Help! О_о Djumpen Общие вопросы Javascript 5 18.11.2010 19:37
Событие после обновления страницы ajax'ом kryzhovnik Events/DOM/Window 4 07.10.2009 22:32
firefox зависает после обновления страницы constantant Firefox/Mozilla 4 14.09.2009 12:30