Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][HTML][PHP]Jak pobrać div'a z innej strony?
TajnyAgent
post
Post #1





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


Witam, chciałbym, by na mojej stronie była wyświetlana dana wartość z danego div'a z danej strony.
Użyłem dokładnie takiego kodu:
Kod
<?php
$strona = file_get_contents('http://www.showup.tv/');

echo '<pre>';
preg_match('/<div class="viewer-stats">(.*)<\/strong>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku
var_dump($wynik);
?>


Niestety wyskakuje mi:
Kod
array(0) {
}


Z tego co wyczytałem, to wydaję mi się, że strona ta blokuje wyciąganie danych w ten sposób i podobno może pomóc cURL, ale dalej to nie wiem co robić z tą informacją.

Pozdrawiam i z góry dziękuję za pomoc (IMG:style_emoticons/default/smile.gif)

Ten post edytował TajnyAgent 17.11.2015, 14:48:31
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 12)
NickOver
post
Post #2





Grupa: Zarejestrowani
Postów: 332
Pomógł: 10
Dołączył: 13.03.2014
Skąd: Bydgoszcz

Ostrzeżenie: (0%)
-----


Zrób:
  1. var_dump($strona);

Wtedy zobaczysz że nie pojawia się strona, lecz monit o dostępie do strony.

Musisz do tego użyć cURL'a KLIK
Go to the top of the page
+Quote Post
TajnyAgent
post
Post #3





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


Użyłem w takim razie teraz takiego kodu przy pomocy cURL'a:
Kod
<?php
$ch = curl_init('http://www.showup.tv');
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
$wejscie = curl_exec($ch);
curl_close($ch);
preg_match('/<div class="viewer-stats">(.*)<\/div>/s', $wejscie, $wyjscie);

print_r($wyjscie);
?>


A kiedy zmieniłem print_r z $wejscie na $wyjscie, to wyskakuje mi coś takiego:
Kod
301 Moved Permanently

nginx

Jakieś pomysły?

To co, pomoże ktoś? Coś robię źle, czy za pomocą cURL'a z tej strony też się nie da wyciągnąć div'a?

Ten post edytował TajnyAgent 17.11.2015, 16:05:52
Go to the top of the page
+Quote Post
fate
post
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


zabezpieczenia maja nie nawojujesz widze
sprobuj wrzucic konkretny link a nie strone główną na poczatek
Go to the top of the page
+Quote Post
TajnyAgent
post
Post #5





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


Próbowałem już i niestety nic to nie pomogło... A czy jest opcja, by skrypt jakoś mógł jak zwykły bot akceptować regulamin, który wyskakuje za pierwszym razem przy wejściu na stronę i wtedy wyciągnąć div'a?
Go to the top of the page
+Quote Post
Comandeer
post
Post #6





Grupa: Zarejestrowani
Postów: 1 268
Pomógł: 254
Dołączył: 11.06.2009
Skąd: Świętochłowice

Ostrzeżenie: (0%)
-----


To zależy jak ten regulamin jest wyświetlany. Jeśli przez JS, to trza by kombinować z PhantomJS.
Go to the top of the page
+Quote Post
TajnyAgent
post
Post #7





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


Sprawdziłem poprze opcję "Zbadaj element" i nie widziałem tam żadnego skryptu JS, jeszcze jakieś pomysły? Jeżeli to za trudne i o za dużo proszę, to sobie odpuszczę oczywiście, nie chcę tu wyciągać żadnej złotej wiedzy (IMG:style_emoticons/default/tongue.gif)
Go to the top of the page
+Quote Post
markuz
post
Post #8





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Spróbuj wejść na:

Cytat

I obsłuż przekierowanie + zapisywanie cookies (to da się zrobić w cURL)
Go to the top of the page
+Quote Post
TajnyAgent
post
Post #9





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


To już robiłem, ale o zapisywaniu cookies nie pomyślałem, dzięki. Zaraz sprawdzę i się odezwę (IMG:style_emoticons/default/smile.gif)

  1. <?php
  2. $ch = curl_init('http://showup.tv/');
  3. curl_setopt ($ch, CURLOPT_FOLLOWLOCATION, 1);
  4. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  5. $cookies = "cookie1=".urlencode("this_is_cookie1").";cookie2=".urlencode("this_is_cookie2");
  6. curl_setopt($ch, CURLOPT_COOKIE, $cookies);
  7. $wejscie = curl_exec($ch);
  8. curl_close($ch);
  9. preg_match('/<div class="profile-list">(.*)<\/div>/s', $wejscie, $wyjscie);
  10.  
  11. print_r($wyjscie);
  12. ?>


Napisałem taki kod, w dobrą stronę poszedłem? Jeżeli nie, bądź tak, to mam coś naprawić, albo dodać? Wydaję mi się, że musi być jakiś kod zapisujący te ciasteczka na serwerze, a ja sam wpierw muszę je wygenerować, póki co to przy tym kodzie próbowałem zaakceptować regulamin, ale jak z powrotem wszedłem na stronę, to znowu był wymóg zaakceptowania regulaminu, także coś nie halo(Oczywiście sprawdzałem to przy print_r($wejscie)
@Edit
Aha i próbowałem także z tym linkiem, który jest odnośnikiem przycisku "Akceptuj", czyli ten który napisałeś, ale wyglądało to tak samo, że był nadal wymóg akceptacji regulaminu/

Ten post edytował TajnyAgent 18.11.2015, 17:34:17
Go to the top of the page
+Quote Post
markuz
post
Post #10





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Myślisz, że losowe cookies pomogą? Bo twoje wyglądają na losowe. cURL zrobi to za Ciebie, tylko podaj dobrą ścieżke i zadbaj o uprawnienia:
  1. curl_setopt($ch, CURLOPT_COOKIEFILE, dirname(__FILE__) . '/cookies.txt');
  2. curl_setopt($ch, CURLOPT_COOKIEJAR, dirname(__FILE__) . '/cookies.txt');


I nie próbuj z tym linkiem, tylko zrób - to jest wymagane jak chcesz żeby działało.

Ten post edytował markuz 18.11.2015, 17:36:27
Go to the top of the page
+Quote Post
TajnyAgent
post
Post #11





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


Kod
http://showup.tv/site/accept_rules/yes?ref=http://showup.tv/
Nie mam próbować z tym linkiem? O to ci chodzi, bo nie za bardzo zrozumiałem. Ale poszło z tym twoim kodem i od razu przechodzi na stronę główną, czyli jest progress. Jednakże kiedy print_r mam ustawione na $wyjscie to w Array nadal nic się nie wyświetla :/
@Edit
Dobra, zmieniłem link na stronę główną i poprawiłem nazwę div'a(Bo uciekło mi s) I wszystko ładnie śmiga, dzięki wielkie ! (IMG:style_emoticons/default/smile.gif)

Ten post edytował TajnyAgent 18.11.2015, 17:43:28
Go to the top of the page
+Quote Post
markuz
post
Post #12





Grupa: Zarejestrowani
Postów: 1 240
Pomógł: 278
Dołączył: 11.03.2008

Ostrzeżenie: (0%)
-----


Jak poprawiłeś link na stronę główna, to skrypt przestanie działać zaraz po tym jak się skończy sesja po stronie serwera.
Go to the top of the page
+Quote Post
TajnyAgent
post
Post #13





Grupa: Zarejestrowani
Postów: 22
Pomógł: 0
Dołączył: 17.11.2015

Ostrzeżenie: (0%)
-----


A okej, czyli mam mieć tamten link co na początku podałaś. Dobra, już poprawiam, trochę mnie zmyliłeś, więc wstawiłem link do strony głównej. Jeszcze raz dzięki za pomoc (IMG:style_emoticons/default/smile.gif)

Mam kolejny problem, nie potrafię zaimplementować kodu php do pliku html, nawet w oddzielnym pliku nie działa. Jeżeli zaimplementuje kod html w kodzie php, to także nie działa, próbowałem dodawać linijki specjalne w .htaccess. Ale nic to nie zmieniło, ktoś pomoże?

@Edit
Udało mi się zaimplementować kod html w kodzie php, ale wolałbym na odwrót tj. zaimplementować kod php w kodzie html

I w między czasie mam kolejny, akurat mały problem, ale jakoś nie mogę sobie poradzić. Chciałbym usunąć te oznaczenia tj. "Array ( [0] =>
) "
________________________________________________________________________________

Dobrze, udało mi się usunąć te oznaczenie tablicy, zamieniając print_r na echo. Jest niby wszystko okej, choć wolałbym tak jak już wcześniej napisałem - zaimplementowany kod php w html, a nie na odwrót (IMG:style_emoticons/default/smile.gif) No ale najwyżej będę pisał w php. Kontynuując, mój kod wyciągający te div'y odnosi się do folderu z obrazkami, których nie ma u mnie na serwerze, czy jest jakaś opcja, by się odnosił do folderu z obrazkami na stronie z której ściągam te div'y?
________________________________________________________________________________
Kolejny progress... Okazało się, że po implementacji kodu php do kodu html wystarczyło jeszcze do tego zamienić rozszerzenie (tego pliku html z wdrożonym skryptem php) z *.html na *.php i wszytko działa cacy (IMG:style_emoticons/default/smile.gif) Tak zadaje te pytania i po jakimś czasie sam rozwiązuje te problemy i od razu wszystko tu piszę.. Ten temat zamienia się powoli w jakiś dziennik tworzenia strony (IMG:style_emoticons/default/tongue.gif) Domyślam się, że irytują was moje błahe problemy i podstawowe pytania, no ale niestety jestem laik(A tym bardziej w php) (IMG:style_emoticons/default/smile.gif) Kontynuując temat i moje ostatnie problemy, to wciąż mam problem z tym, aby w jakiś sposób ten kod wyciągnięty z tamtej strony nie szukał u mnie obrazków, lecz na własnej stronie. Myślałem o tym, by wziąć jakiegoś gotowca z net'a, który by ściągał automatycznie obrazki z tamtego serwera na mój serwer, ale niestety obciąża to trochę serwer i te gotowce, które znalazłem nie działały do końca tak jak powinny.
________________________________________________________________________________
Dobra, rozwiązałem swój ostatni problem używając preg_replace, także tamtejszy problem już jest nieaktualny(W między czasie miałem kolejny problem, ale nie chciało mi się pisać, bo byłem pewny, że raczej nikt mi z tym nie pomoże, więc nie marnowałem czasu pisząc tu), póki co to przerywam ten "dziennik".

Ten post edytował TajnyAgent 20.11.2015, 18:03:45
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 7.10.2025 - 22:19