Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

2 Stron V   1 2 >  
Reply to this topicStart new topic
> [php]Pobieranie linku do pliku cURL
Maniek1313
post 10.11.2011, 16:35:44
Post #1





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


Witam mam pytanie czy da radę w php stworzyć skrypt który po wpisaniu linku strony i oczywiście wysłania formularza pobrało mi kod html diva ze strony którą podałem w inpucie i potem wyświetlenia tego diva u mnie na stronie questionmark.gifquestionmark.gif
Go to the top of the page
+Quote Post
nospor
post 11.11.2011, 09:19:33
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




Da się.

Sam w tytule napisałeś cURL. Czego więc nie wiesz?


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 11:37:01
Post #3





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


Znalazłem w necie taki kod

  1. <?php
  2.  
  3. $curl = curl_init("tutaj adres strony");
  4.  
  5. curl_setopt($curl, CURLOPT_URL, "tutaj adres strony");
  6. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  7. curl_setopt($curl, CURLOPT_USERAGENT, 'TEST');
  8. curl_setopt($curl, CURLOPT_TIMEOUT, 60);
  9. curl_setopt($curl, CURLOPT_HEADER, 0);
  10.  
  11. $body = curl_exec($curl);
  12.  
  13. curl_close($curl);
  14.  
  15.  
  16. $file = "baza.txt";
  17. $fp = fopen($file, "a");
  18. flock($fp, 2);
  19. fwrite($fp, $body);
  20. flock($fp, 3);
  21. fclose($fp);
  22.  
  23. ?>


i pobiera mi całą stronę a nie wiem jak zrobić żeby mi pobrał tylko jeden div przypuśćmy o id="nowydiv".
Go to the top of the page
+Quote Post
by_ikar
post 11.11.2011, 13:02:38
Post #4





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Będzie ci zawsze pobierał całą stronę. Tą stronę którą pobierasz to wyłuskujesz sobie z niej to czego ci potrzeba. Na conajmniej kilka sposobów. W DOM, jakimiś wyrażeniami regularnymi i tym podobne. Osobiście do takich celów używam phpQuery, taka fajna klasa w stylu jQuery i samo poruszanie się po DOM sprowadza się przeważnie do 1 linijki wink.gif
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 13:07:09
Post #5





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


a mógłbyś dodać jakiś przykład użycia tego phpQuery questionmark.gif
Go to the top of the page
+Quote Post
by_ikar
post 11.11.2011, 14:09:32
Post #6





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Kod
require './phpQuery/phpQuery.php';

$curl = curl_init("tutaj adres strony");

curl_setopt($curl, CURLOPT_URL, "tutaj adres strony");
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_USERAGENT, 'TEST');
curl_setopt($curl, CURLOPT_TIMEOUT, 60);
curl_setopt($curl, CURLOPT_HEADER, 0);

$body = curl_exec($curl);

curl_close($curl);

phpQuery::newDocument($body);

echo pq('#nowydiv')->html();


Generalnie masz w tym phpQuery sporo przykładów, zarówno na stronie phpQuery: http://code.google.com/p/phpquery/ jak i w przykładach które pobierasz wraz z klasą, jak i na sporej ilości stron w sieci.
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 15:36:21
Post #7





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


ok dzięki już mam tylko że jest jeszcze jeden problem zrobiłem tak :

  1. <?php
  2.  
  3. require './phpQuery/phpQuery.php';
  4.  
  5. $curl = curl_init("link do strony");
  6.  
  7. curl_setopt($curl, CURLOPT_URL, "link do strony");
  8. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  9. curl_setopt($curl, CURLOPT_USERAGENT, 'TEST');
  10. curl_setopt($curl, CURLOPT_TIMEOUT, 60);
  11. curl_setopt($curl, CURLOPT_HEADER, 0);
  12.  
  13. $body = curl_exec($curl);
  14.  
  15. curl_close($curl);
  16.  
  17. phpQuery::newDocument($body);
  18.  
  19. echo pq('#dl')->html();
  20.  
  21.  
  22. $file = "baza.txt";
  23. $fp = fopen($file, "a");
  24. flock($fp, 2);
  25. fwrite($fp, $body);
  26. flock($fp, 3);
  27. fclose($fp);
  28.  
  29. ?>


i na stronie pojawia się zamist
  1. <a id="dl" href="tutaj strona"><img src="obrazek.jpg"></a>


to wyświetla się taki kod

  1. <img src="obrazek.jpg">




Ten post edytował Maniek1313 11.11.2011, 15:43:39
Go to the top of the page
+Quote Post
gorden
post 11.11.2011, 16:24:13
Post #8





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


a nie lepiej file_get_contents i preg_match? nie trzeba do tego curla, cała filozofia
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 16:51:45
Post #9





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


ok a mam pytanie bo link dostaje w postaci /plik/1.rar a chciałbym żeby było http://www.strona.pl/plik/1.rar więc jak to dodać questionmark.gif
Go to the top of the page
+Quote Post
by_ikar
post 11.11.2011, 17:09:54
Post #10





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


No jeżeli wiesz z jakiej strony ten link masz, to co za problem jeszcze raz użyć tego linka?
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 17:32:45
Post #11





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


no tak ale jak mi pobiera cały kod <a href="/plik/1.rar"></a> to jak dołączyć żeby było <a href="http://www.strona.pl/plik/1.rar"></a>
Go to the top of the page
+Quote Post
gorden
post 11.11.2011, 20:12:31
Post #12





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


wyrażeniem regularnym pobierasz hrefa, zmieniasz na link i ponownie dodajesz w <a>
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 20:24:29
Post #13





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


nie rozumię
Go to the top of the page
+Quote Post
gorden
post 11.11.2011, 20:32:39
Post #14





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


http://lmgtfy.com/?q=wyra%C5%BCenia+regularne+odno%C5%9Bnik
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 20:36:09
Post #15





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


ale mi się rozchodzi o to że nie wiem jak pobrać tylko kawałek strony ten który potrzebuje

Ten post edytował Maniek1313 11.11.2011, 20:36:55
Go to the top of the page
+Quote Post
gorden
post 11.11.2011, 20:44:41
Post #16





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


to co wcześniej napisałem, tylko bez ostatniego słowa. do pobrania strony do zmiennej użyj file_get_contents(url)
Go to the top of the page
+Quote Post
Maniek1313
post 11.11.2011, 20:48:30
Post #17





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


a byś wstawił przykład z użyciem file_get_contents(url) jak pobrać dany fragment strony np. sam <a href="tutajadres" id="new">blabla</a>
Go to the top of the page
+Quote Post
gorden
post 11.11.2011, 20:58:12
Post #18





Grupa: Zarejestrowani
Postów: 486
Pomógł: 101
Dołączył: 27.06.2010

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


  1. preg_match('wyrazenie', file_get_contents('link'), $result);
wyrażenie sam sobie znajdź, chociażby w linku, który Ci dałem. więcej Ci nie pomogę w tej sprawie. wierze w Ciebie!
Go to the top of the page
+Quote Post
Maniek1313
post 12.11.2011, 19:20:31
Post #19





Grupa: Zarejestrowani
Postów: 148
Pomógł: 2
Dołączył: 8.07.2011

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


Zrobiłem takie coś tylko że coś jest nie tak z funkcją preg_replace nie wiem jak ułożyć 3 argument.

Oto kod :

  1. <?php
  2. $pobierz = file_get_contents('http://przykladowastrona');
  3. $dane = preg_replace ('!<a id="new" href="#">(.*)!</a>',$pobierz);
  4. print_r($dane);
  5. ?>



Jedyne co będzie się zmieniać w tym to href="tutaj"

Ten post edytował Maniek1313 12.11.2011, 19:24:34
Go to the top of the page
+Quote Post
by_ikar
post 13.11.2011, 00:19:06
Post #20





Grupa: Zarejestrowani
Postów: 1 798
Pomógł: 307
Dołączył: 13.05.2009
Skąd: Gubin/Wrocław

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


Widzę nigdy nie bawiłeś się jquery a selektory z css są ci zupełnie obce. Dałem ci narzędzie, którym możesz wyciągnąć co chcesz i w sumie głównie musisz wiedzieć na jakiej zasadzie "działają" selektory w css..

  1. require './phpQuery/phpQuery.php';
  2.  
  3. $strona = file_get_contents('http://przykladowastrona');
  4.  
  5. phpQuery::newDocument($body);
  6.  
  7. $link = pq('a#new')->attr('href');
  8.  
  9. echo $link;


Pod zmienną $link znajduje się twój adres. W ogóle zajrzałeś na przykłady podane w phpQuery? Trzeba było się tym bardziej zainteresować, bo biblioteka jest na prawdę genialna.
Go to the top of the page
+Quote Post

2 Stron V   1 2 >
Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 12.07.2025 - 04:11