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

Skrypt nie pobiera danych ze źródła/nie zapisuje w MySQL

Object Storage Arubacloud
0 głosów
298 wizyt
pytanie zadane 14 października 2015 w PHP przez Levi3r Nowicjusz (120 p.)

Witam!

Na wstępie chciałbym zaznaczyć, że jestem niemal kompletnie zielony jeśli chodzi o PHP :/ Zakupiłem autorski skrypt (niestety bez wsparcia) dla serwisu rozrywkowego. Jednym z jego głównych zadań jest pobieranie danych ze strony-źródła (Vine.co) i zapisywanie ich w bazie MySQL, aby następnie publikować je na moim serwisie. Skrypt działał bez zarzutu i w przypadku drobnych update kodu źródłowego potrafiłem drogą dedukcji zmienić kod skryptu, aby poprawnie działał jednak po ostatniej aktualizacji nie jestem w stanie zmodyfikować kodu, aby to zadziałało - dane albo się nie zaczytują/zapisują w bazie lub została zablokowana możliwość ich pobrania (?) stąd prośba czy ktoś byłby w stanie pomóc w rozwiązaniu tego problemu. Postaram się to wyjaśnić najlepiej jak potrafię :)

Strona-źródłto to Vine.co, a konkretnie podstrona z wybranym filmikiem np. https://vine.co/v/eEeliEWAFUE

Z tego źródła potrzebuję pobrać takie wartości jak (pogrubioną czcionką to co powinno wylądować w bazie, a w nawiasie i kursywą w jakiej kolumnie):

-  <meta property=twitter:image:src content=https://v.cdn.vine.co/r/videos/197E35D87D1265808639772725248_4d8fd9405c9.1.1.516982928171252496.mp4.jpg?versionId=qjwbO.Nwnpv03T8Z1rogkYo5O1ZJqowR> (thumb_large)

- <meta property=twitter:player:stream content=https://v.cdn.vine.co/r/videos_h264high/197E35D87D1265808639772725248_4d8fd9405c9.1.1.516982928171252496.mp4?versionId=D_LplGHfV9OlpBSyPMutdZnqXf2g33SI> (source)

-  <meta property=twitter:description content="Vine by Anwar Jibawi"> (author)

- <meta property=twitter:app:url:googleplay content=https://vine.co/v/eEeliEWAFUE> (embedsource)

Tutaj screen jak powinien wyglądać poprawny wpis w bazie po zaczytaniu potrzebnych danych (tabela 'vines') oraz jak wygląda obecnie zaczytywany wpis: https://drive.google.com/file/d/0B5XGg_dlhVYcamVaSkUwQXY0UVE/view?usp=sharing

Tak wygląda obecny kod pliku php odpowiedzialnego za ściąganie tych danych (podaję linka ponieważ po wklejeniu tutaj post nie chciał się opublikować ze względu na zbyt dużą liczbę znaków z drugiej strony według worda cały wpis miał 5500+, a teoretyczne maksimum to 8000): https://drive.google.com/file/d/0B5XGg_dlhVYcMFV4VHRiU2E1Skk/view?usp=sharing

 

Czy ktoś mógłby opisać jak zmodyfikować kod, aby dane znów były zaczytywane do bazy? Mam nadzieję, że da się to zrobić i że wyjaśniłem problem w miarę jasno :)

Z góry dziękuję za ewentualne zainteresowanie i pomoc!

Pozdrawiam!

1 odpowiedź

+2 głosów
odpowiedź 14 października 2015 przez furas Maniak (53,800 p.)
Może daj w kodzie `echo` aby wypisywało to co wyszukało na stronie aby sprawdzić czy robi to dobrze. Jeśli nie to znaczy, że musisz nauczyć się ReGex czyli wyrażeń regularnych i przerobić warunki `preg_match`.

Warunek "(.*)" oznacza "bierz wszystko i jak najwięcej" czyli jest zachłanne (ang. greedy).

Tak więc "(.*)\>" oznacza pobieranie wszystkiego ale nie do pierwszego pojawienia się \> w linii tylko do ostatniego.

Dodanie warunku aby nie było zachłanne (znaczek ? ) sprawi, że będzie pobierać tylko do pierwszego pojawienia się \>

Nie pamiętam czy powinno to być "(.*)?\>" czy "(.*?)\>" ale to już sam sprawdzisz.

 

---

ps. to strasznie dziwne, że do pobrania czterech rzeczy z jednej strony pobierasz stronę aż cztery razy zamiast zrobić to tylko raz.
komentarz 15 października 2015 przez Levi3r Nowicjusz (120 p.)

(.*?) okazał się zbawienny smiley Wystarczyło dodać go w każdym preg_matchu i teraz wszystko działa elegancko :) Dzięki wielkie za naprowadzenie i pomoc! smiley

Co do pobierania 4 razy to taki skrypt kupiłem i tak jak wspominałem nie znam się kompletnie na tym jakie to ma plusy, a jekie minusy :P Istotne jest dla mnie, aby spełniał swoją rolę :) Jeszcze raz dzięki!

Pozdrawiam :)

Podobne pytania

0 głosów
2 odpowiedzi 108 wizyt
pytanie zadane 4 sierpnia 2016 w SQL, bazy danych przez BlueWee Użytkownik (730 p.)
–1 głos
1 odpowiedź 129 wizyt
pytanie zadane 16 czerwca 2016 w PHP przez MaciekM Użytkownik (990 p.)
0 głosów
2 odpowiedzi 184 wizyt
pytanie zadane 5 sierpnia 2015 w PHP przez Else Stary wyjadacz (12,260 p.)

92,624 zapytań

141,482 odpowiedzi

319,824 komentarzy

62,006 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!

...