Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [JavaScript][HTML][PHP]Pobranie Div-a z innej strony, Jak pobrać element (div) innej strony
miszarus
post 4.08.2012, 14:47:55
Post #1





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Witam serdecznie,
chciałbym się dowiedzieć w jaki sposób najłatwiej pobrać konkretnego div-a z innej strony. Problem wygląda następująco, że na pewnej stronie po adresem http://strona/tabela umieszczane są tabele (dwa razy w tygodniu). Chciałbym na własnej stronie umieszczać te tabele z automatu. Jest to tabela 7 kolumn 10 wierszy.
Czy da się, aby na mojej stronie był skrypt wyświetlający ten element z automatu? Pobierał nie całą stroną jako iframe tylko konkretnego <diva> questionmark.gif
Go to the top of the page
+Quote Post
2 Stron V   1 2 >  
Start new topic
Odpowiedzi (1 - 19)
CuteOne
post 4.08.2012, 15:54:53
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


A nie lepiej pobierać raz w tygodniu całą stronę, przeparsować ją i wyświetlić u siebie?
Go to the top of the page
+Quote Post
miszarus
post 4.08.2012, 16:15:45
Post #3





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Może być? Pytanie-->Jak to zrobić?
Go to the top of the page
+Quote Post
djgarsi
post 4.08.2012, 16:27:20
Post #4





Grupa: Zarejestrowani
Postów: 459
Pomógł: 26
Dołączył: 1.06.2009

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


Cytat(miszarus @ 4.08.2012, 17:15:45 ) *
Może być? Pytanie-->Jak to zrobić?


CURL, zainteresuj sie tym.

Ten post edytował djgarsi 4.08.2012, 16:27:52


--------------------
Go to the top of the page
+Quote Post
!*!
post 4.08.2012, 16:35:20
Post #5





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(djgarsi @ 4.08.2012, 17:27:20 ) *
CURL, zainteresuj sie tym.

Albo prościej file_get_contents i preg_match

Ten post edytował !*! 4.08.2012, 16:38:21


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
gorden
post 4.08.2012, 16:37:22
Post #6





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


Cytat(djgarsi @ 4.08.2012, 17:27:20 ) *
Nie ten dział --> Gotowe rozwiązania.

on nie prosi o gotowe rozwiązanie tylko pyta się jak to zrobić, co może oznaczać prośbę o wytłumaczenie mechaniki skryptu

  1. if( $dzien_tygodnia == 'sroda' || $dzien_tygodnia == 'niedziela' ) //zakladam ze takie dni tygodnia
  2. {
  3. if( $tabelka_aktualna !== true) //gdzieś powinieneś zapisać którego dnia ostatnio tabelka została pobrana, jeśli już powinna się zmienić niech zmienia się na false na początku skryptu
  4. {
  5. $strona = file_get_contents('http://strona/tabelka');
  6. //tutaj wyrażenie regularne które pobiera Twój fragment/część tabelki
  7. $tabelka_aktualna = true;
  8. $tabelka_html = $wyrazenie_regularne[0];
  9. }
  10. }
  11. echo $tabelka_html;
Go to the top of the page
+Quote Post
miszarus
post 4.08.2012, 23:06:35
Post #7





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Napisałem coś takiego...jednak nie zwraca mi diva...nie daje żadnego efektu.

Kod
<?php
    $url = "http://www.strona/tabela";
    $ch = curl_init(); // inicjalizacja curla
    curl_setopt($ch, CURLOPT_URL,$url); // ustawienie urla
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // zwróć w postaci zmiennej
    curl_setopt($ch, CURLOPT_TIMEOUT, 3); // czas oczekiwania
    $result = curl_exec($ch); // wykonanie skryptu
    curl_close($ch);

preg_match_all('/<ul class="SubMColumn">(.+?)<\/ul>/ism', $result, $wyjscie); //podanie nazwy diva -  "SubMColumn"
        ?>


Ten post edytował miszarus 4.08.2012, 23:08:00
Go to the top of the page
+Quote Post
!*!
post 5.08.2012, 09:35:04
Post #8





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Ponieważ
1, wybrałeś gorszy sposób, curl (niepoprawny).
2. źle go zastosowałeś.

  1. $strona = file_get_contents('http://strona/tabela');
  2.  
  3. echo '<pre>';
  4. preg_match('/<div>(.*)<\/div>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku
  5. var_dump($wynik);

http://www.php.net/manual/pl/reference.pcr...n.modifiers.php

Ten post edytował !*! 5.08.2012, 09:37:44


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
JoShiMa
post 5.08.2012, 09:35:05
Post #9





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

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


A może skryptozakładka, jeśli to ma być za pomocą JavaScript

Ten post edytował JoShiMa 5.08.2012, 09:35:56


--------------------
Go to the top of the page
+Quote Post
miszarus
post 5.08.2012, 17:59:03
Post #10





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Cytat(!*! @ 5.08.2012, 10:35:04 ) *
Ponieważ
1, wybrałeś gorszy sposób, curl (niepoprawny).
2. źle go zastosowałeś.

  1. $strona = file_get_contents('http://strona/tabela');
  2.  
  3. echo '<pre>';
  4. preg_match('/<div>(.*)<\/div>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku
  5. var_dump($wynik);

http://www.php.net/manual/pl/reference.pcr...n.modifiers.php


Ale nie działa, gdyż wywala albo jakieś znaki...a gdy wpisuje aby otrzymać konkretnego diva, otrzymuje

array(0) {
}

Chodzi mi o to by móc pobrać np. taką tabelę z kursami jak na http://sgb.pl/kursy_walut i ją wyświetlać na swojej stronie.
Zrobiłem tak:
CODE
<?php
$strona = file_get_contents('http://www.sgb.pl/kursy_walut');
echo '<pre>';
preg_match('/<div>(.*)<\/div>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku
var_dump($wynik);
?>


ale nie dostaje tabelki sad.gif

Ten post edytował miszarus 5.08.2012, 18:17:04
Go to the top of the page
+Quote Post
!*!
post 5.08.2012, 18:21:58
Post #11





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Ponieważ to tylko przykład. Musisz wpisać odpowiednie wyrażenie regularne, takie jakie jest na tej stronie którą pobierasz.

  1. preg_match('/<table class="Ctab">(.*)<\/table>/s', $strona, $wynik);

Poza tym, żeby pobrać aktualny kurs walut, to wejdź na stronę NBP i pobierz te dane za pomocą ich API.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
miszarus
post 5.08.2012, 18:25:35
Post #12





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Działa smile.gif Maestro, a jak edytować to...żeby ładnie wyświetlić?

Np. Włożyć teraz w stronkę na HTML-u?

I jeszcze jedno ważne pytanie. W jaki sposób to aktualizować, aby zmieniało się samo, podczas aktualizacji na ich stronie?


Ten post edytował miszarus 5.08.2012, 18:32:32
Go to the top of the page
+Quote Post
CuteOne
post 5.08.2012, 18:55:46
Post #13





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


1. Poczytaj o file_get_contents()
2. Poczytaj o cronie
Go to the top of the page
+Quote Post
!*!
post 6.08.2012, 04:58:52
Post #14





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(miszarus @ 5.08.2012, 19:25:35 ) *
Działa smile.gif Maestro, a jak edytować to...żeby ładnie wyświetlić?

Np. Włożyć teraz w stronkę na HTML-u?

I jeszcze jedno ważne pytanie. W jaki sposób to aktualizować, aby zmieniało się samo, podczas aktualizacji na ich stronie?


  1. echo $wynik[0];
  2. //lub
  3. file_put_contents('plik.txt', $wynik[0]); // a następnie ten plik odczytujesz jak wyżej.



--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
miszarus
post 6.08.2012, 17:56:44
Post #15





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


Kurdem, nie mogę sobie poradzić.
Jakiś przykład, jak te dane obrobić? I dlaczego jak definiuje
CODE
preg_match('/<h3 class="color">(.*)<\/table>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku


i tak pobiera mi całą stronę sad.gif

Go to the top of the page
+Quote Post
!*!
post 6.08.2012, 19:49:55
Post #16





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Niemożliwe. Pokaż całość.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
miszarus
post 6.08.2012, 20:09:28
Post #17





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


http://miszarus.c0.pl/parsowanie.php
Go to the top of the page
+Quote Post
!*!
post 6.08.2012, 20:39:58
Post #18





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


PHP wink.gif


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post
miszarus
post 6.08.2012, 20:45:12
Post #19





Grupa: Zarejestrowani
Postów: 46
Pomógł: 0
Dołączył: 20.11.2009

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


CODE
<?php
$strona = file_get_contents('http://www.sgb.pl/kursy_walut');
echo '<pre>';
preg_match('/<h3 class="color">(.*)<\/table>/s', $strona, $wynik); // (.*) pobiera wszystko bez wyjątku
var_dump($wynik);

echo $wynik[0];
//lub
?>


Przecież deklaruje, że chce tylko <h3 class="color"> a wywala mi wszystko! Jak to obrobić? Szukam po podobnych tematach:
http://forum.ks-ekspert.pl/topic/125737-ph...elementu-stony/
http://peb.pl/tworzenie-stron/1256320-curl...nie-tre-ci.html

próbowałem się wzorować na tym

CODE
/Wyciąganie ze źródła potrzebnego kodu za pomocą fukcji explode();
$wynik = explode('<div id="HomeStock"><div></div></div>',$wynik);
$wynik = $wynik[1];
$wynik = explode('<div class="HomeStock"><div></div></div>', $wynik);
$wynik = $wynik[0];
//Rozpoczynanie formatowania
$wynik = preg_replace('/<\/h1>(.*?)<h2>/si', '</h1><h2>', $wynik);
$wynik = preg_replace("/width='(.*?)' height='(.*?)' border='(.*?)'/si", 'alt="" /', $wynik);
$pattern[0] = 'livebox_content';
$pattern[1] = '<h2>TERAZ</h2>';
$replacement[0] = 'weather_box';
$replacement[1] = '';
$wynik = str_replace($pattern, $replacement, $wynik);
//Zwracanie fragmentu po formatowaniu
return($wynik);
}
echo pogoda('id');
?>


ale wszystko nic. Ja chcę tylko jak to się mówi...dokładnie zabrać tą tabelkę i wyświetlać u ciebie lub przełożyć te dane do siebie sad.gif
Go to the top of the page
+Quote Post
!*!
post 6.08.2012, 20:48:55
Post #20





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat
<h3 class="color">(.*)<\/table>

To nie wygląda na poprawny tag <h2> wink.gif teraz pobierasz wszytko od h2 do końca tabeli.


--------------------
Nie udzielam pomocy poprzez PW i nie mam GG.
Niektóre języki programowania, na przykład C# są znane z niezwykłej przenośności (kompatybilność ze wszystkimi wersjami Visty jest wiele warta).
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 14.08.2025 - 01:13