Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wyciąganie linkow ze strony (curl)
Forum PHP.pl > Forum > PHP
bagsiur
Witam. Naszym zadaniem jest napisanie dla paru osób skryptu pobierającego linki ze strony. (nie chcemy tego robić, ale musimy - praktyki). Napisaliśmy skrypt z zastosowaniem curl.

  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://www.szkoly.info.pl/szkoly,podkarpackie,%B6rednie,0.html");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  6. $wynik = curl_exec($curl);
  7. curl_close($curl);
  8.  
  9. for($i=0; $i<=10; $i++){
  10. $x=strpos($wynik, '<p >');
  11. $y=strpos($wynik, '</p>');
  12. $z=substr($wynik, $x, $y-$x);
  13. echo $z;
  14. }
  15.  
  16. ?>


I tu zaczynają się schody. Mamy problem z wyciągnięciem wszystkim linków do szkół z tej podstrony. Prosimy też o pomoc lingwistyczną.
matx132
  1. <?php
  2. $curl = curl_init();
  3. curl_setopt($curl, CURLOPT_URL, "http://www.szkoly.info.pl/szkoly,podkarpackie,%B6rednie,0.html");
  4. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  5. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  6. $wynik = curl_exec($curl);
  7. curl_close($curl);
  8. $z=array();
  9.  
  10. for($i=0; $i<=10; $i++){
  11. $x=strpos($wynik, '<p >');
  12. $y=strpos($wynik, '</p>');
  13. $z[$i]=substr($wynik, $x, $y-$x);
  14. $wynik=str_replace($z[$i]."</p>",'',$wynik);
  15. }
  16. for($i=0; $i<=10; $i++){
  17. $x=strpos($z[$i], 'href="');
  18. $y=strpos($z[$i], '" title');
  19. $t=substr($z[$i], $x+6, $y-$x-6);
  20. echo $t."<br>";
  21. }
  22. ?>
bagsiur
Dzięki dębiec (matx132), gdyby jednak fuddi szukał gotowca (lub ktoś inny, czegoś takiego), to wklejam kodzik smile.gif

  1. <?php
  2. mysql_connect('127.0.0.1','xxxx','xxxxx') or die ('sorki blad mysqla :(');
  3. mysql_select_db('xxxxx') or die ('znowu blad');
  4.  
  5. $zm=1;
  6.  
  7. for($qe=0;$qe<=20;$qe=$qe+10){
  8. $curl = curl_init();
  9. curl_setopt($curl, CURLOPT_URL, "http://www.szkoly.info.pl/szkoly-2,podstawowe%20podstawowa,$qe.html");
  10. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  11. curl_setopt($curl, CURLOPT_TIMEOUT, 3000);
  12. $wynik = curl_exec($curl);
  13. curl_close($curl);
  14. $z=array();
  15.  
  16. for($i=0; $i<=10; $i++){
  17. $x=strpos($wynik, '<p >');
  18. $y=strpos($wynik, '</p>');
  19. $z[$i]=substr($wynik, $x, $y-$x);
  20. $wynik=str_replace($z[$i]."</p>",'',$wynik);
  21. }
  22. for($i=0; $i<=10; $i++){
  23. $x=strpos($z[$i], 'href="');
  24. $y=strpos($z[$i], '" title');
  25. $t=substr($z[$i], $x+6, $y-$x-6);
  26. $linki[$zm]=$t;
  27. if($i!=10) $zm++;
  28. }
  29. }
  30.  
  31. $i=1;
  32.  
  33. while($linki[$i]){
  34. $curl = curl_init();
  35. curl_setopt($curl, CURLOPT_URL, $linki[$i]);
  36. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  37. curl_setopt($curl, CURLOPT_TIMEOUT, 30);
  38. $wynik = curl_exec($curl);
  39. curl_close($curl);
  40.  
  41. $x=strpos($wynik, '<a href="mailto:');
  42. $z=substr($wynik, $x+16, 30);
  43.  
  44. $r=strpos($z, '.pl');
  45. $la[$i]=substr($z, 0, $r+3);
  46.  
  47. if($la[$i]=='UBL') echo 'ni ma majla :( <br>';
  48. else {
  49. $x=strpos($wynik, '<b>Dane teleadresowe:</b> <br/>');
  50. $y=strpos($wynik, '<br/>
  51. <hr/>
  52. ');
  53. $dane[$i]=substr($wynik, $x, $y-$x);
  54. /* to do pozbycia sie tagow, ale z nimi jest lepeiej
  55. $dane[$i]=str_replace("<b>", "", $z);  
  56. $dane[$i]=str_replace("</b>", "", $z);
  57. $dane[$i]=str_replace("<br/>", " ", $z);
  58. $dane[$i]=str_replace('<a href="http://', "info:", $z);
  59. $dane[$i]=str_replace('">', ' ', $z);
  60. $dane[$i]=str_replace("</a>", "\n", $z);
  61. */
  62. $x=strpos($wynik, '<h2>');
  63. $y=strpos($wynik, '</h2>');
  64. $nazwa[$i]=substr($wynik, $x+4, $y-$x-4);
  65. mysql_query("insert into szkoly values(null,'$nazwa[$i]', '$la[$i]', '$dane[$i]')") or die ('lipton');
  66. echo $i.': ok!<br>';
  67. }
  68. $i++;
  69. }
  70. mysql_close(mysql_connect('127.0.0.1','xxxxx','xxxxx'));
  71. ?>
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.