• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Scraper pobiera dane w formacie xml w jaki sposób to wyświetlić na stronie

Object Storage Arubacloud
+1 głos
291 wizyt
pytanie zadane 21 czerwca 2021 w PHP przez Grzegorz Mikina Dyskutant (8,060 p.)
Pobieram w laravelu scraperem jakieś dane dokładnie mowa o tabeli, owszem dostaje zwrot, ale jest to jeden długi string z całej tabeli. Czy da się to jakoś ugryźć żeby całą tabele wyświetlić u siebie na stronie. Dokładnie mowa o pobieraniu kursu walut, i jest tabela
Waluta Oznaczenie Cena Zakupu Cena Sprzedaży
1EUR   Eur                 4,22                  4,44
1$         Dol                2,30                    2,55

To przykładowe danie, ale tabela nie ma w obudowie żadnych klas i nie mam czego złapać żeby to poprawnie przenosić do widoku.
komentarz 22 czerwca 2021 przez SzkolnyAdmin Szeryf (86,360 p.)
Jak wygląda ten string?
komentarz 22 czerwca 2021 przez Grzegorz Mikina Dyskutant (8,060 p.)
przeniesione 22 czerwca 2021 przez ScriptyChris

Ten string który mam
 

117/A/NBP/2021 2021-06-21 bat (Tajlandia) 1 THB 0,1208 dolar amerykański 1 USD 3,8214 dolar australijski 1 AUD 2,8651 dolar Hongkongu 1 HKD 0,4922 dolar kanadyjski 1 CAD 3,0676 dolar nowozelandzki 1 NZD 2,6606 dolar singapurski 1 SGD 2,8400 euro 1 EUR 4,5442 forint (Węgry) 100 HUF 1,2811 frank szwajcarski 1 CHF 4,1486 funt szterling 1 GBP 5,2883 hrywna (Ukraina) 1 UAH 0,1401 jen (Japonia) 100 JPY 3,4754 korona czeska 1 CZK 0,1777 korona duńska 1 DKK 0,6111 korona islandzka 100 ISK 3,0997 korona norweska 1 NOK 0,4412 korona szwedzka 1 SEK 0,4444 kuna (Chorwacja) 1 HRK 0,6060 lej rumuński 1 RON 0,9224 lew (Bułgaria) 1 BGN 2,3234 lira turecka 1 TRY 0,4367 nowy izraelski szekel 1 ILS 1,1702 peso chilijskie 100 CLP 0,5104 peso filipińskie 1 PHP 0,0784 peso meksykańskie 1 MXN 0,1860 rand (Republika Południowej Afryki) 1 ZAR 0,2675 real (Brazylia) 1 BRL 0,7507 ringgit (Malezja) 1 MYR 0,9209 rubel rosyjski 1 RUB 0,0523 rupia indonezyjska 10000 IDR 2,6487 rupia indyjska 100 INR 5,1551 won południowokoreański 100 KRW 0,3372 yuan renminbi (Chiny) 1 CNY 0,5906 SDR (MFW) 1 XDR 5,4568

 

komentarz 22 czerwca 2021 przez VBService Ekspert (252,660 p.)
edycja 22 czerwca 2021 przez VBService

@Grzegorz Mikina, Możesz podać, proszę, link do strony, z której pobierasz te dane, bo może jest możliwość ustawienia bardziej "przyjaznego" formatu dla tych danych. Jedynym separatorem danych jaki Ja tu widzę to są spacje, może w tym co ty dostajesz string-u, między poszczególnymi walutami jest znak końca linii (\r\n  lub \n), to by wiele ułatwiło.

 

[ edit ]

Przyjrzałem się uważnie, temu string-owi, miałem cały czas przed oczami  wink, początek

117/A/NBP/2021, czy to czasem nie jest ta strona: NBP Web API ?

Jeżeli tak, to dane z tego api są w : JSON lub XML, skąd ten string?

komentarz 22 czerwca 2021 przez reaktywny Nałogowiec (40,930 p.)
można zamienić na JSON-a, a ten jest dużo przyjemniejszy w przetwarzaniu.
komentarz 22 czerwca 2021 przez Grzegorz Mikina Dyskutant (8,060 p.)
NBP Web Api to nie jest, jest tabela kursów ze strony nbp w formacie xml
1
komentarz 23 czerwca 2021 przez reaktywny Nałogowiec (40,930 p.)
edycja 23 czerwca 2021 przez reaktywny
Poszukaj pod hasłem "PHP XML to JSON conversion"

Widzę, że jest np. SimpleXML.

Z drugiej strony ten XML chyba nie jest jakiś super skomplikowany, może od razu wyciągniesz dane.
komentarz 23 czerwca 2021 przez Grzegorz Mikina Dyskutant (8,060 p.)

Trzy elementy mają jedną klase nadrzędną. Ale w środku Jest kurs który ma jedną klasę, a obok jest %+,- i wartość kwoty wzrostu i oba mają klasę value

        $reg="\r";
        echo $page->filter('.boxHeader')->text();//get class to text     WYŚWIETLA AKTUALNY KURS
        echo "\r";

Ten fragment wyświetla mi aktualne notowanie Euro:
4,5155 0,08% 0,0037 EUR/PLN

Chce to przerobić na JSONa, bo jak to zrobię to już z góry, ale wyświetla mi cały czas taki komunikat:" The current node list is empty, lub np" Undefined index: 4,5153 0,08% 0,0035 EUR/PLN.

Chcę dostać zwykłego JSONa, którego będę mógł wyświetlić w widoku.Tylko tyle.

Czy ktoś może poratować?
Tutaj kod całości.
 

<?php

namespace App\Http\Controllers;

use Goutte\Client;

use Illuminate\Http\Request;

class ScraperController extends Controller
{
    private $results = array();

    public function scraper(){
        $client = new Client();
        $url ='https://www.bankier.pl/waluty/kursy-walut/forex/eurpln';
        $page = $client->request('GET',$url);

        // echo "<pre>";//-GET PAGE
        // print_r($page);//-GET PAGE

        // $reg="\r";
        // echo $page->filter('.profilLast')->text().$reg;//get class to text
        // echo "\r";
        // echo $page->filter('.change')->text();//get class to text
        
        // $reg="\r";
        // echo $page->filter('.boxHeader')->text();//get class to text     WYŚWIETLA AKTUALNY KURS
        // echo "\r";

        
        $page->filter('.boxHeader')->each(function($item){
            $this->results[$item->filter('.boxHeader')->text()];
        });
        echo json_encode($page);

        // return view('scraper');
    }
}

 

komentarz 23 czerwca 2021 przez Grzegorz Mikina Dyskutant (8,060 p.)
Strona dostępna w pliku.

Zaloguj lub zarejestruj się, aby odpowiedzieć na to pytanie.

Podobne pytania

0 głosów
1 odpowiedź 1,696 wizyt
pytanie zadane 8 sierpnia 2018 w JavaScript przez Jumpeq Początkujący (270 p.)
–1 głos
1 odpowiedź 232 wizyt
pytanie zadane 17 lutego 2018 w Grafika i multimedia przez Patrycja Bogacka Nowicjusz (140 p.)
0 głosów
0 odpowiedzi 203 wizyt
pytanie zadane 31 maja 2020 w JavaScript przez mm Użytkownik (890 p.)

92,539 zapytań

141,382 odpowiedzi

319,476 komentarzy

61,928 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...