Witam!

Mam taki oto skrypt do pobierania artów z pewnej strony:

  1.  
  2. <?php
  3. ini_set('max_execution_time', 300000000); //300 seconds = 5 minutes
  4.  
  5. mysql_connect("localhost", "root", "");
  6. mysql_select_db("deceq");
  7.  
  8.  
  9. for ($i=2000000; $i<=3000000; $i++){
  10.  
  11. $curl=curl_init("http://ezinearticles.com/?id=$i");
  12. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  13. curl_setopt($curl, CURLOPT_TIMEOUT, 10);
  14.  
  15. $wynik=curl_exec($curl);
  16.  
  17.  
  18.  
  19. $findme = '<meta http-equiv="refresh" content="3; url=/">';
  20.  
  21. $findme2="<h3>You are browsing EzineArticles.com faster than a normal human would.</h3>";
  22.  
  23.  
  24.  
  25. preg_match_all("#\<div class=\"art_title\" style=\"margin: 15px 0px 0px 0px\"\>(.*)\<\/div\>#Usi", $wynik, $tytul);
  26.  
  27. preg_match_all("#\<div id=\"body\"\>(.*)\<\/div\>#Usi", $wynik, $tresc);
  28.  
  29. preg_match_all("#cat=(.*)>#", $wynik, $cat);
  30.  
  31. if (strpos($wynik, $findme)==true) {
  32.  
  33. echo "<font color=red>Dla i=".$i." wystapil blad!</font><br/>";
  34. }
  35. else if (strpos($wynik, $findme2)==true)
  36. {
  37. $ch = curl_init('http://192.168.1.1/SubmitInternetService');
  38. curl_setopt($ch, CURLOPT_USERPWD, 'admin:admin');
  39. curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
  40. curl_setopt($ch, CURLOPT_POST, true);
  41. curl_setopt($ch, CURLOPT_POSTFIELDS, 'ACTION_DISCONNECT=Disconnect');
  42. curl_exec($ch);
  43. curl_setopt($ch, CURLOPT_POSTFIELDS, 'ACTION_CONNECT=Connect');
  44. curl_exec($ch);
  45. curl_close($ch);
  46. sleep(7);
  47. echo "<font color=red>Dla i=".$i." ZRESETOWANO POŁĄCZENIE! </font><br/>";
  48.  
  49. }
  50. else {
  51. $cat=$cat[0][1];
  52. $tablica = explode('">', $cat);
  53. $cat = $tablica[0];
  54. $cat = str_replace("cat=", "", $cat);
  55. $zapytanie = "SELECT id FROM kategorie WHERE nazwa='$cat'";
  56. $r=mysql_fetch_row(mysql_query($zapytanie));
  57. $id=$r[0];
  58. $tytul = str_replace(" ", "", $tytul[1][0]);
  59. $tresc = addslashes(strip_tags($tresc[1][0]));
  60. if (mysql_query("INSERT INTO arty (tytul, tresc, kat) VALUES ('$tytul', '$tresc', $id)")) {
  61. echo "Dla i=".$i." dodano rekord o tytule $tytul<br/>";
  62. }
  63. else {
  64. echo "<font color=red>Dla i=".$i.".</font>Blad przy dodawaniu:".mysql_error();
  65. }
  66.  
  67. }
  68. }
  69.  
  70.  
  71.  
  72. ?>


Skrypt działa strasznie wolno, przez 10 godzin działania pobrał zaledwie 10k rekordów, co nie jest zadowalające.

Czy da się coś z tym zrobić?