[php] Pobranie odpowiedniej części zawartości strony do tablicy/bazy danych |
[php] Pobranie odpowiedniej części zawartości strony do tablicy/bazy danych |
7.06.2018, 12:48:29
Post
#1
|
|
Grupa: Zarejestrowani Postów: 3 Pomógł: 0 Dołączył: 29.09.2017 Ostrzeżenie: (0%) |
Konkretnie.
Jest strona http://www.90minut.pl/strzelcy.php?id=9327. Cel: pobranie nazwisk piłkarzy z drugiej części od "strzelcy według drużyn". Po prostu, imię i nazwisko każdego strzelca do kolejnych elementów tablicy. Jak to zrobiłem do tej pory: Idiotycznie. Ale próbowałem. Znalazłem gdzieś w internecie funkcję, która potrafi zwracać fragmenty ciągów znajdujące się pomiędzy danymi "tagami" - początkowym i końcowym. No więc ustawiłem, żeby pobierało od " " (spacja) do "," (przecinek) - tak mniej więcej na stronie umiejscowione są nazwiska piłkarzy. Potem wywalałem z elementów tablicy wszystko przed ":", żeby usunąć nazwy klubów. Następnie wyrzuciłem "-" i cyfry. O dziwo, udało mi się w ten sposób pobrać ze strony wszystkie nazwiska strzelców, ale... poza ostatnimi w każdej linijce. Dlaczego? Bo po nich nie ma "," (przecinka) Ogólnie wyszło mi coś takiego:
Pytania: 1. Jak pobrać z tego tekstu nazwiska strzelców, którzy są ostatni w linijce? Myślę, że można by to zrobić przeszukując tekst od końca, między znakiem nowej linii (/n czy tam /r, nie wiem właśnie), a przecinkiem lub spacją... kurde nie wiem 2. Jak zrealizować cel w ludzki sposób, bez robienia takich głupstw jak wyżej |
|
|
11.06.2018, 22:03:45
Post
#2
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Trochę mi się nudziło, więc zrobiłem Ci gotowca.
To jest dosyć eleganckie rozwiązanie tego problemu. Na tyle, na ile pozwala struktura tej strony, która do idealnych nie należy. W tablicy $scorers będziesz miał coś takiego:
Piłkarze posortowani według liczby strzelonych goli (od najlepszych), potem wg imienia i nazwiska, potem wg nazwy drużyny. Może być? |
|
|
13.06.2018, 08:52:13
Post
#3
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 23 Dołączył: 20.01.2011 Skąd: Chełm Ostrzeżenie: (0%) |
http://simplehtmldom.sourceforge.net łatwiej użyć tego do ściągania danych.
|
|
|
13.06.2018, 09:03:26
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Czy ja wiem czy aż tak łatwiej? Jak się zna XPath to nawet w DOMDocument można cuda łatwo robić.
|
|
|
14.06.2018, 10:31:34
Post
#5
|
|
Grupa: Zarejestrowani Postów: 342 Pomógł: 23 Dołączył: 20.01.2011 Skąd: Chełm Ostrzeżenie: (0%) |
ja tam z tego korzystam gdy trzeba do szukania czegoś w strukturze html, ostatnio z transfermarkta chciałem pościągać parę danych
|
|
|
14.06.2018, 11:03:30
Post
#6
|
|
Grupa: Zarejestrowani Postów: 1 707 Pomógł: 266 Dołączył: 3.07.2012 Skąd: Poznań Ostrzeżenie: (0%) |
Te zewnętrzne biblioteki do parsowania DOM mają zwykle bardziej sensowną składnię niż wbudowany DOMDocument, nie mówiąc już nawet o dziwacznym SimpleXML. Z drugiej strony, czasami fajnie jest mieć niezależny kod bez żadnych zewnętrznych bibliotek. Przydałby się porządny wbudowany parser w PHP.
P.S. Myślałem, że jesteś dziewczyną Ten avatar + Olsza M. Będę pamiętał, żeś samiec. Ten post edytował SmokAnalog 14.06.2018, 11:04:23 |
|
|
Wersja Lo-Fi | Aktualny czas: 27.04.2024 - 01:45 |