Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Pobieranie "zbadaj stronę"
Forum PHP.pl > Forum > PHP
michalbd93
jak pobrać treść jakieś strony tą samą gdy klikamy prawy przycisk i zbadaj

wymyśliłem coś takiego
  1. <?
  2. $url = 'strona.php';
  3. $wynik = file_get_contents($url);
  4. preg_match('/src="(.*)" width/is',$wynik,$title);
  5.  
  6. echo $title[1];
  7. ?>


ale to pobiera jedynie źródło strony
i nie ma niektórych elementów

proszę o szybką odpowiedz
Pyton_000
Bo dodatkowe elementy są wczytywane przez Ajax. Więc albo użyjesz czegoś pokroju WebDriver do zasymulowania requestu uzytkownika, albo pobierzesz tylko to co cię interesuje a idzie przez requesty ajax.

I nie będzie to szybko...
michalbd93
ja w tym temacie to jestem kompletna noga wiec nawet nie wiem od czego zacząć np gdy z jakieś strony
chce pobrać
np
  1. <div id="sbfbl" style="display:none" data-async-context="async_id:duf3-46;authority:0;card_id:;entry_point:0;feature_id:;header:0;open:0;suggestions:;s
    uggestions_subtypes:;suggestions_types:;surface:0;type:46"
    ><style>a.duf3{color:#777;float:right;font-style:italic;-webkit-tap-highlight-color:rgba(0,0,0,0);tap-highlight-color:rgba(0,0,0,0)}a._G8q{color:rgba(0,0,0,.54);float:none;font-style:normal}a._sWr{padding:0 5px;background:rgba(255,255,255,.9);}._v1h{color:#9e9e9e;cursor:pointer;padding-right:8px}._rWr{color:#9e9e9e;float:right;font-size:12px;padding-bottom:4px}</style><div style="display:none" jsl="$t t-aTz9-_sUcEc;$x 0;" class="r-iuWQEkDNs_2E"></div><div id="duf3-46" data-jiis="up" data-async-type="duffy3" data-async-context-required="type,open,feature_id,async_id,entry_point,authority,card_id,header,suggesti
    ons,surface,suggestions_types,suggestions_subtypes" class="y yp" data-ved="0ahUKEwi3rqPbj9TXAhUFApoKHfhAAcMQ-0EIBA"></div><a class="duf3 _sWr" href="#" id="sbfblt" data-async-trigger="duf3-46" jsaction="async.u" data-ved="0ahUKEwi3rqPbj9TXAhUFApoKHfhAAcMQtw8IBQ">Zgłoś nieodpowiednią podpowiedź</a></div>


a strona jest tak skonstruowana że nie ma tego w zrodło strony tylko w zbadaj stronę jest męczę się z tym już naprawdę długo dla tego każde nakierowanie mnie cenię
olszam
Bo źródło to źródło, czyli kod strony przed ładowaniem. Po załadowaniu może się wiele zmienić w html bo js pewnie tutaj miesza i nic na to nie poradzisz.

dam ci mały przykład

  1. <html>
  2. <head></head>
  3. <body>
  4. <div id="tekst">TEST</div>
  5. </body>
  6. <script>
  7. document.getElementById("test").innerHTML = "JS";
  8. </script>
  9. </html>


w źródle będziesz mieć to co wyżej w kodzie napisałem, natomiast w elementach już się zmieni i nie będziesz mieć w divie TEST tylko JS bo strona się już całkowicie wczytała i wykonała skrypt js.
michalbd93
no i własnie jak to zrobić by pobrać dane z zbadaj
viking
PhantomJS i jedziesz. Po stronie PHP http://jonnnnyw.github.io/php-phantomjs/
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.