Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] cURL pobieranie dużej ilości danych i wsadzanie ich do bazy
piotrex41
post
Post #1





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


Witam,

Co prawda z PHP mam kontakt od 3 lat, to tematyka cURL jest mi kompletnie obca, a niestety muszę go użyć. Przechodzę do sedna:

Na praktykach dostałem do napisania serwis z ogłoszeniami dla osób poszukujących pracę. Pracodawcy dodają oferty itp. Całość napisana obiektowo, ale jest jedna rzecz na której się zaciąłem. Mianowicie właśnie cURL. Chodzi o automatyczne pobiernie ofert pracy z http://www.pup.gliwice.pl/klient/oferty_pracy.html Niestety nie ma tam RSSa więc trzeba to jakoś wyciągnąć sposobem, którym właśnie jest cURL.

Problem polega na tym, że na tej stronie są jedynie "zajawki" ofert a pełny opis (który muszę pobrać) znajduje się w linku, otwieranym w nowym oknie JS po kliknięciu.

Skrypt ma codziennie o godzinie 18 sprawdzać czy są nowe oferty i je dodawać do moderacji (moderacja jest już zrobiona, trzeba tylko wrzucać zapytaniem do bazy danych pobrane oferty).

Kompletnie nie wiem jak mam się za to zabrać. Dla mnie cURL to czarna magia. Wiem że pobrane źródło muszę filtrować regexp'ami, ale nic pozatym (IMG:style_emoticons/default/tongue.gif)

Połączenie już zrobiłem, źródło mam, ale dalsze grzebanie to już masakra dla mnie.

Bardzo proszę o pomoc.

Ten post edytował piotrex41 24.05.2012, 08:22:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
piotrex41
post
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


Cóż, debugowanie kodu nie wiele dało, więc spróbowałem tego preg_match_all() i wyszło... No wyszło co wyszło (IMG:style_emoticons/default/tongue.gif) Co prawda są wszystkie linki, ale tablica jest ogromna:

Jest tak gigantyczna, że nawet nie mogę tu jej wkleić (IMG:style_emoticons/default/biggrin.gif) Oto link do jej źródła: http://pastebin.com/EaVMSLTN

Mój kod:
  1. $dane = array();
  2. for($i = 0; $i <= 10; $i++)
  3. {
  4. preg_match_all('#<a onclick="showPopupWindow(.*?);return false;" href = "(.*?)">#i', $this->_home, $dane[]);
  5. }
  6. print_r($dane);


@EDIT:

Ok udało mi sie pozbyć nadmiaru info, mam już tylko linki, ale niestety tylko ze strony głównej:
  1. $dane = array();
  2. preg_match_all('#<a onclick="showPopupWindow(.*?);return false;" href = "(.*?)">#i', $this->_home, $dane[]);
  3.  
  4. print_r($dane[0][2]);


I jak teraz zrobić żeby sprawdzał na wszystkich podstronach a nie tylko na 1szej? (IMG:style_emoticons/default/smile.gif)
Czy za każdym razem muszę nowego curla inicjować w pętli dodającej numer strony a później łączyć tablice z linkami w 1?

Ten post edytował piotrex41 25.05.2012, 09:51:44
Go to the top of the page
+Quote Post

Posty w temacie


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: 2.10.2025 - 18:37