Реклама на сайте Advertise with us

Каким образом можно отрабатывать JS при парсинге PHP?

Расширенный поиск по форуму
 
Новая тема Новая тема   
Автор
Поиск в теме:

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 01/02/18 в 10:29       Ответить с цитатойцитата 

Некоторые сайты отдают контент через JS и если у меня в браузере он отключен, то контент я не вижу, глянул сохраненную копию страниц в гугле, там тоже этот контент не отображается.
Как то можно при парсинге выполнять JS чтоб все элементы появлялись в DOM?

1
 



С нами с 11.08.06
Сообщения: 400
Рейтинг: 208

Ссылка на сообщениеДобавлено: 01/02/18 в 10:41       Ответить с цитатойцитата 

Selenium WebDriver

9
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 01/02/18 в 23:11       Ответить с цитатойцитата 

PhantomJS или любой headless браузер. Selenium WebDriver это все таки из другой оперы немного...

НО! это все геморой и чаще можно обойтись без этого, просто смотри откуда js тянет контент и ходи сразу туда нормальным curl. js же не из воздуха контент подгружает.

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

8
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 02/02/18 в 14:54       Ответить с цитатойцитата 


За PhantomJS тоже прочитал и за то, что нужно отследить откуда js тянет данные.
И тут само собой возникает вопрос, а как можно отследить откуда JS тянет контент?
Когда просматриваешь код страницы, там до кучи разного JS кода, как встроенного:
<script>JS CODE</script>, так и подключенные файлы code.js. Как правило в подключенных файлах кроме того, что всё сжато, т.е. без переносов строк и т.п. так еще и кода большое кол-во.

0
 



С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365

Ссылка на сообщениеДобавлено: 02/02/18 в 15:41       Ответить с цитатойцитата 

Lexikon писал:
И тут само собой возникает вопрос, а как можно отследить откуда JS тянет контент?

Например, тем же phantomjs
http://phantomjs.org/network-monitoring.html
Но вообще, сдается мне, что имелось ввиду, когда парсишь конкретный сайт, то ты сам смотришь в той же developer console что откуда тянется и парсишь соответствующий источник. Например, если js тянет несколько json файлов, и потом на их основе строит DOM, то вместо парсинга DOM, проще извлечь нужные данные из оригинальных json файлов.

9
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 02/02/18 в 16:02       Ответить с цитатойцитата 

Mika писал:
Но вообще, сдается мне, что имелось ввиду, когда парсишь конкретный сайт, то ты сам смотришь в той же developer console что откуда тянется и парсишь соответствующий источник. Например, если js тянет несколько json файлов, и потом на их основе строит DOM, то вместо парсинга DOM, проще извлечь нужные данные из оригинальных json файлов.

Я как раз так это и понял.
Речь о developer console, которая доступна в функционале браузера? Если да, то как там можно глянуть, что и откуда тянется? Что в хроме, опере, и лисе там много различных вкладок и я просто не в курсе, где там можно мосмотреть, что и откуда тянется.

0
 



С нами с 18.10.02
Сообщения: 4165
Рейтинг: 3365

Ссылка на сообщениеДобавлено: 02/02/18 в 16:27       Ответить с цитатойцитата 

Lexikon писал:
Если да, то как там можно глянуть, что и откуда тянется?

Если в Хроме (хотя в ФФ тоже насколько я помню точно так же), то открываешь консоль разработчика (ctrl-shift-j), переходишь во вкладку Network (или "Сеть" в русской локализации), и там будет лог что и куда отправлялось и принималось. Для удобства можно поставить галочку на preserve log (в этом случае лог не будет стираться при открытии новой страницы). Ну и там же разные полезные фичи есть, типа отфильтровать по типу контента, отключить кэш, включить троттлинг.

8
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 02/02/18 в 16:30       Ответить с цитатойцитата 

Благодарю! Будем разбираться.

0
 
+


С нами с 09.05.17
Сообщения: 661
Рейтинг: 586


Передовик Master-X (01.08.2017) Передовик Master-X (01.02.2018) Передовик Master-X (16.10.2019) Передовик Master-X (01.11.2019)
Ссылка на сообщениеДобавлено: 02/02/18 в 17:05       Ответить с цитатойцитата 

Mika писал:

Но вообще, сдается мне, что имелось ввиду, когда парсишь конкретный сайт, то ты сам смотришь в той же developer console что откуда тянется и парсишь соответствующий источник. Например, если js тянет несколько json файлов, и потом на их основе строит DOM, то вместо парсинга DOM, проще извлечь нужные данные из оригинальных json файлов.



Exactly! это решает 90% проблем, исключая всякие хитрые защиты от парсинга ссылок на видео например, где ссылка просто генерится, тогда да, нужно "выполнить" js код.

Покупаем пуш траффик
GoPusher 2 - рули своими пуш подписчиками

0
 

Люблю то, что делаю!

С нами с 22.10.06
Сообщения: 5053
Рейтинг: 4418


Передовик Master-X (16.12.2014) Передовик Master-X (16.02.2017) Передовик Master-X (01.03.2017) Передовик Master-X (16.03.2017) Передовик Master-X (01.09.2017) Ветеран трепа Master-X (16.09.2017)
Ссылка на сообщениеДобавлено: 04/02/18 в 22:16       Ответить с цитатойцитата 

Mika писал:
Если в Хроме (хотя в ФФ тоже насколько я помню точно так же), то открываешь консоль разработчика (ctrl-shift-j), переходишь во вкладку Network (или "Сеть" в русской локализации), и там будет лог что и куда отправлялось и принималось. Для удобства можно поставить галочку на preserve log (в этом случае лог не будет стираться при открытии новой страницы). Ну и там же разные полезные фичи есть, типа отфильтровать по типу контента, отключить кэш, включить троттлинг.

smail54.gif
Спасибо! Оказывается там очень много полезного зарыто, что не видно на странице отображения контента!

0
 



С нами с 05.01.18
Сообщения: 4
Рейтинг: 1

Ссылка на сообщениеДобавлено: 06/02/18 в 11:08       Ответить с цитатойцитата 

сначала берешь SlimerJS (он визуальный как Selenium), берешь либу CasperJS. пишешь код, отлаживаешь, смотришь наглядно. потом переключаешь SlimerJS на PhantomJS (он безголовый, быстрее раз в 10).

0
 
Новая тема Новая тема   

Текстовая реклама в форме ответа
Заголовок и до четырех строчек текста
Длина текста до 350 символов
Купить рекламу в этом месте!


Перейти:  



Спонсор раздела Стань спонсором этого раздела!

Реклама на сайте Advertise with us

Опросы

Рецепт новогоднего блюда 2022



Обсудите на форуме обсудить (11)
все опросы »