Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt odczytujacy kurs dzienny zlota ze strony
swiezak
post
Post #1





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

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


Pod adresem: kitco.com, po prawej stronie znajduje sie tabela z kursem dziennym zlota, ktory jest w postaci xxxx.xx. W tej chwili jego wartosc wynosi 1098.00.
W jaki sposob pobrac ta wartosc przy uzyciu np. file_get_html lub curl?

Fragment osadzonego na stronie formularza:
  1. <span id="dgc_index">1098.00</span> /* szukana wartosc */


Probuje w ten sposob:
  1. $html = @file_get_html("http://www.kitco.com");
  2. $gold = $html->find('span[id="dgc_index"]', 0);


Prosze o podpowiedz, w jaki sposob sparsowac zrodlo strony, aby wydobyc z niego szukana wartosc.

Ten post edytował swiezak 24.01.2016, 01:31:22
Go to the top of the page
+Quote Post
Comandeer
post
Post #2





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

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


http://php.net/manual/en/domdocument.loadhtml.php + http://php.net/manual/en/domdocument.getelementbyid.php
To, czego chcesz użyć, to funkcje super przestarzałej biblioteki Simple HTML DOM.
Go to the top of the page
+Quote Post
swiezak
post
Post #3





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

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


Moze i super przestarzala, ale wystarczala do pomniejszych projektow.

Postanowilem zaprzac do pracy curl i popelnilem cos takiego:
  1. $base = 'http://www.kitco.com';
  2.  
  3. $curl = curl_init();
  4. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, FALSE);
  5. curl_setopt($curl, CURLOPT_HEADER, false);
  6. curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  7. curl_setopt($curl, CURLOPT_URL, $base);
  8. curl_setopt($curl, CURLOPT_REFERER, $base);
  9. curl_setopt($curl, CURLOPT_RETURNTRANSFER, TRUE);
  10. $str = curl_exec($curl);
  11. curl_close($curl);
  12.  
  13. $html_base = new simple_html_dom();
  14. $html_base->load($str);
  15.  
  16.  
  17. foreach($html_base->find('span') as $element) {
  18. ...
  19. }
  20.  
  21. //$mat = $html_base->find('span#dgc_index');
  22. preg_match( '/<span id="dgc_index">(.+?)</span>/i', $html, $mat);
  23.  
  24.  
  25. $html_base->clear();
  26. unset($html_base);


Nie bardzo wiem, jak sobie poradzic z "wyluskaniem" wartosci kursu dziennego zlota.
Go to the top of the page
+Quote Post
viking
post
Post #4





Grupa: Zarejestrowani
Postów: 6 380
Pomógł: 1116
Dołączył: 30.08.2006

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


Masz już w zasadzie kod, w czym problem?
  1. $mat = $html_base->find('span#dgc_index', 0);
  2. var_dump($mat->plaintext);
  3. string(8) "1098.00 "
Go to the top of the page
+Quote Post
swiezak
post
Post #5





Grupa: Zarejestrowani
Postów: 159
Pomógł: 0
Dołączył: 21.08.2011

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


Dzieki serdeczne za pomoc. Jak zwykle na prostych rzeczach potrafie sie wylozyc.

Pozdrawiam.
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: 24.08.2025 - 23:15