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%)
-----


Tochę mnie nastraszyłes z tym banowaniem (IMG:style_emoticons/default/tongue.gif)

Mój kod do cURL jest następujący:

  1. $curl = curl_init();
  2. //Inicujemy curl
  3.  
  4. curl_setopt($curl, CURLOPT_URL, 'http://www.pup.gliwice.pl/klient/oferty_pracy.html');
  5. //pobieramy dane z "http://www.lfsworld.net/?win=stats&racer=rafal612b2"
  6.  
  7. curl_setopt($curl, CURLOPT_REFERER, "http://www.google.pl/");
  8. //ustawiamy refferer na www.google.pl (niektóre strony mają zabezpieczenia
  9.  
  10. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  11. //wyniku nie wyświetlamy a zapisujemy do zmiennej co ułatwia prace nad nim
  12.  
  13. curl_setopt($curl, CURLOPT_USERAGENT, 'Googlebot/2.1 (+http://www.googlebot.com/bot.html)');
  14. //ustawiamy useragent (niektóre strony mają zabezpieczenia)
  15.  
  16. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  17. //Maxymalny czas połączenia ze stroną
  18.  
  19. curl_setopt($curl, CURLOPT_HEADER, 0);
  20. //nie chcemy dołączać nagłówka
  21.  
  22. $strona = curl_exec($curl);
  23. //uruchamiamy skonfigurowanego curla
  24.  
  25. curl_close($curl);
  26. //zamykamy


Coś trzeba zmienić?

I teraz powiedz czy dobrze zrozumiałem (IMG:style_emoticons/default/biggrin.gif)
1. Pobieram cURL całą zawartość strony
2. Filtruję sobie z tego linki
3. Każdy link znów traktuje cURL (w pętli) i pobieram całą zawartość, następnie wybieram co potrzebne i do bazy wrzucam poprzez zapytanie?

No i jak zrobić żeby zawsze o 18 sprawdzał? Bo zdaje mi się że zwykły IF sprawdzający godzinę przez date('H'); to było by chyba za proste (IMG:style_emoticons/default/smile.gif)
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: 16.10.2025 - 12:07