[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Парсинг страницы созданой на JavaScript
Xakep
Всем привет
Нужно получить полный код страницы "http://myscore.ru" средствами PHP или jQuery. Данные на странице генерируются с помощью JS и меняются каждую секунду. Если в браузере нажать ПКМ и выбрать "Просмотр кода страницы", то мы не увидим всего текста который в данный момент мы видим на странице. Инымы словами мы увидим только "Скелет" страницы, а все его "внутренности" появляются с помощью JS.

file_get_contents() не подходит. На сайте есть <div id="fs"> и он подгружается с помощью JS. Еси использовать file_get_contents то я получаю код страницы с пустым дивом.

Как быть в таком случае? Есть ли решение? Нужно выдернуть весь HTML код страницы (или только содержимое дива fs)
sergeiss
Цитата (Xakep @ 20.11.2016 - 12:33)
Как быть в таком случае? Есть ли решение?

Решение есть. Но оно делается исключительно на JS. Ты можешь подключить свой файл JS к любой странице и получить текущие данные.

PS. Если в контекстном меню браузера выбрать "Просмотр кода элемента" или "Исследовать элемент" (в разных браузерах по-разному), то увидим как раз текущее состояние страницы.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
Xakep
Цитата
PS. Если в контекстном меню браузера выбрать "Просмотр кода элемента" или "Исследовать элемент" (в разных браузерах по-разному), то увидим как раз текущее состояние страницы.


Попробуй зайди на сайт myscore.ru и посмотри исходный код страницы. На сайте есть список матчей, Попробуй найти хотя бы одну команду из этого списка в HTML коде страницы

Цитата
Но оно делается исключительно на JS. Ты можешь подключить свой файл JS к любой странице и получить текущие данные.

Не понял про это. Можно по подробнее?
killer8080
Xakep
браузер же не с потолка эти данные берёт, ищи какие аякс запросы он шлёт, от туда и получишь нужный контент.
sergeiss
Цитата (sergeiss @ 20.11.2016 - 12:52)
"Просмотр кода элемента" или "Исследовать элемент" (в разных браузерах по-разному)

Цитата (Xakep @ 20.11.2016 - 13:50)
исходный код страницы

Ты действительно не видишь разницы между этими понятиями?

Но поверь, это разные вещи smile.gif Я тебе говорю о том контенте, который находится в настоящий момент на странице, а не о той странице, что была загружена изначально.

_____________
* Хэлп по PHP
* Описалово по JavaScript
* Хэлп и СУБД для PostgreSQL

* Обучаю PHP, JS, вёрстке. Интерактивно и качественно. За разумные деньги.

* "накапливаю умение телепатии" (С) и "гуглю за ваш счет" (С)

user posted image
AllesKlar
Цитата (Xakep @ 20.11.2016 - 11:50)
Попробуй зайди на сайт myscore.ru и посмотри исходный код страницы. На сайте есть список матчей, Попробуй найти хотя бы одну команду из этого списка в HTML коде страницы

user posted image

p.s. Ник забавный biggrin.gif

_____________
[продано копирайтерам]
Guest
Ну это то все понятно. Но я спрашиваю как мне посредствами JS или PHP получить этот код?
Xakep
Упс. не авторизировался
Пост выше мой
killer8080
Цитата (Guest @ 20.11.2016 - 20:47)
Ну это то все понятно. Но я спрашиваю как мне посредствами JS или PHP получить этот код?

я выше ответил, читай внимательней посты.
depp
Xakep
тебе уже ответили.
Цитата (killer8080 @ 20.11.2016 - 16:16)
ищи какие аякс запросы он шлёт

или ты хочешь что их за тебя искали?
brevis
Если лень разбираться какие там запросы куда шлются а потом еще расшифровывать ответ -- можно попробовать PhantomJS [+CasperJS]. Гуглить "парсер на phantomjs".
Если хочется на PHP -- Selenium Webdriver.


_____________
Чатик в телеге
RootPM
Цитата (AllesKlar @ 20.11.2016 - 19:38)
p.s. Ник забавный biggrin.gif

rolleyes.gif

После загрузки и формирования страницы работайте с DOM.

_____________
Все будет офигенно. Кому-то сразу, кому-то постепенно.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.