Как с помощью Curl забрать внутренний код iframe?

Тема в разделе "PHP", создана пользователем jabbaxatt, 3 апр 2013.

Статус темы:
Закрыта.
Модераторы: latteo
  1. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    890
    Симпатии:
    418
    На странице чужого сайта есть несколько iframe (с комментариями, в рекламой, с лайками фейсбука и т.д.) - как можно получить внутренний код этих iframe в переменную, на PHP?

    Саму страницу Curl забирает но iframe там нет, что логично т.к. они "выполняются" в браузере.
     
  2. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.407
    1. Получить код целевой страницы
    2. Распарсить полученный код, вытащив URL фреймов
    3. Получить содержимое фреймов
     
    jabbaxatt нравится это.
  3. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    890
    Симпатии:
    418
    Думал так, но почему-то не получилось - те iframe что я вижу при просмотре сайта в браузере я не могу вообще найти, скачав эту страницу через curl или просто "Сохранив только html" в браузере. Уже голова не варит совсем :(

    У меня ещё вопрос. Как так может быть??? Есть статья - Перейти по ссылке
    Там внизу есть комментарии, 5 штук. Они не в iframe.

    При сохранении этой странице через Curl этих комментариев в коде нет. А как тогда они подгружаются?
     
  4. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.407
    Какой URL страницы?

    Комментарии на той странице - результат работы js. Чтобы их получить необходимо просмотреть логику работы js
     
    jabbaxatt нравится это.
  5. jabbaxatt

    jabbaxatt Добрый модератор

    Moderator
    Регистр.:
    21 янв 2009
    Сообщения:
    890
    Симпатии:
    418
    А нельзя как-то заставить эти скрипты выполнится (как в браузере) а потом получить результат (Html) этого выполнения? На том же Delphi есть браузер. Но в php нет среды для выполнения JS. И вариантов я не вижу.
    Читаю пока про Перейти по ссылке но уж больно там всего наворочено. По проще в применении решений нет?


    Ап. В английском интернете про эмуляцию браузера в своих программах на сервере отсылают то к HtmlUnit то к PhantomJS. Оба (судя по моему плохому переводу) поддерживают выполнение JS на сервере, без браузера. Но оба требуют программирования на Java, а с этим я не знаком. Плохо.

    Неужели нельзя получить в переменную PHP код HTML аналогичный тому что находится в браузере после выполнения скриптов. :( :( :(

    Ап 2. Всё что можно найти на русском во всех поисковиках - эта статья о том как связать HtmlUnit c PHP - Перейти по ссылке
    В рот мне ноги:mad: , сколько сложностей :(

    Оказывается проблему у нас уже обсуждали - https://www.nulled.cc/threads/205330/

    Но решения нет и там.
     
  6. stealthdebuger

    stealthdebuger Механик

    Administrator
    Регистр.:
    25 авг 2008
    Сообщения:
    634
    Симпатии:
    1.407
    node.js в руки и вперед...
    если, конечно, цель стоит в универсальном решении...
    для частных случаев, коих большинство, намного проще вручную разобрать отсылаемые/получаемые запросы, вычислить где и как формируются необходимые данные и после сформировать "правильный" запрос посредством php.
     
    latteo и jabbaxatt нравится это.
  7. Belka-90

    Belka-90 Писатель

    Регистр.:
    13 окт 2007
    Сообщения:
    20
    Симпатии:
    4
    Скорей всего вы не получите отдельно коментарии, там наверняка используется какой-нибудь sekret key для авторизации в стороннем приложении. Вам поможет ob_start();
     
    jabbaxatt нравится это.
  8. dandandan

    dandandan

    Регистр.:
    7 авг 2008
    Сообщения:
    991
    Симпатии:
    267
    Напрямую курлом никак не заберете текст.

    Вот ваш адрес с комментариями для указанной выше страницы:
    PHP:
    http://www.livejournal.com/tools/endpoints/comments.bml?rsk=J5BZUAwuG98cuvzbdvzBvOpKppkttf29dALDoElK&docid=2160582&ver=2&ditemid=&encoding=Windows-1251&callback=jQuery17028726787044946156_1365184395482&_=1365184400010
    Останется разобраться как формируется урл для комментариев и распарсить страничку.
     
    jabbaxatt нравится это.
Статус темы:
Закрыта.