SQL Datenbank durch PHP mit Suchmaschine abgleichen?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • SQL Datenbank durch PHP mit Suchmaschine abgleichen?

    Ich bin zu Zeit dran ein Script zu schreiben wo ich meine fast 5.000 Kundesetzte in einer Suchmaschine durchsuchen möchte. Ziel ist es die TOP 10 Domain Resultate in die SQL Datenbank zurückzugeben.

    Meine Tabelle besteht aus Mehrere Spalten Name, Straße PLZ und Ort

    Diese Werte sollen per Link an die Suchmaschine übergeben werden um die resoluteste nach links auf Domains zu durchsuchen und diese hinter den Kunden einzufügen, danach ist die nächste Zeile mit dem nächsten Kunden rank.

    Die Datenbank konnte ich importieren und auch eine Verbindung ist erfolgreich. Leider werden die Zeilen nicht an die Url weitergeben. Hat jemand Tipps für mich wie ich diese Script bewerkstellige?

    PHP-Code:
    $mysqlhost "XXXXXX"// MySQL-Host angeben
    $mysqluser "XXXXXX"// MySQL-User angeben
    $mysqlpwd "XXXXXX"// Passwort angeben
    // Login an SQL Datenbank
    $conn mysql_connect("$mysqlhost""$mysqluser""$mysqlpwd") or die ("Keine Verbindung moeglich");
    $mydb mysql_select_db("XXXXXX") or die ("Die Datenbank existiert nicht.");

    if (!
    $conn) {
        echo 
    "Keine Verbindung zur DB: " mysql_error();
        exit;
    }

    if (!
    $mydb) {
        echo 
    "Kann  mydb nicht auswählen: " mysql_error();
        exit;
    }

    $sql 'SELECT B, C, D FROM Tabelle1';

    $result mysql_query($sql);

    if (!
    $result) {
        echo 
    "Anfrage ($sql) konnte nicht ausgeführt werden : " mysql_error();
        exit;
    }

    if (
    mysql_num_rows($result) == 0) {
        echo 
    "Keine Zeilen gefunden, nichts auszugeben, daher Abbruch";
        exit;
    }
       
    $url "http://www.google.de/#q=$sql";
       
    $file fopen($url"r");
       while(!
    feof($file))
       echo 
    fgets($file4096);
    fclose($file); 
    Liebe Grüße

  • #2
    So hab jetzt noch ein bisschen recherchiert. Denke dass die einfachste Lösung über die Google API zu bewerkstelligen ist, oder?

    Google Web API Tutorial

    PHP-Code:
    <?
    require_once("nusoap.php");
    ?>
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0
            Strict//EN" "DTD/xhtml1-strict.dtd"><html
            xmlns="http://www.w3.org/1999/xhtml" xml:lang="en"
            lang="en">
    <head>
        <title>Test</title>
    </head>
    <body>

    <h1>Hello World</h1>

    <?
    $Query = "Hello World"; // [3]
    $key = "[Put your developer's key here]";
    $start = 0;

    $parameters = array( 
                "key"         => $key,
                "q"           => $Query,
                "start"       => $start,
                "maxResults"  => 10,
                "filter"      => true,
                "restrict"    => "",
                "safeSearch"  => false,
                "lr"          => "lang_en", 
                "ie"          => "",
                "oe"          => ""
        );

    $soapclient = new soapclient("http://api.google.com/search/beta2"); // [1]
    $result = $soapclient->call("doGoogleSearch", $parameters, "urn:GoogleSearch");
    $searchtime = $result["searchTime"];
    $begin = $start + 1;
    $end = $start + $parameters["maxResults"];
    $total = $result["estimatedTotalResultsCount"]; 

    if ($total > 0)
    {
        $result = $result["resultElements"]; 

        for ($i = 0; $i < $parameters["maxResults"]; $i++)
        {
            $element = $result[$i];
            $url = $element["URL"];
            $title = $element["title"];
            $snippet = $element["snippet"]; // [2]
            ?><p><?= $snippet ?></p><?
        }

    }
    ?>
    Wenn jemand von Euch einen anderen Ansatz wie man es eleganter machen kann haben sollte... würde ich mich über ein Posting freuen.

    Gruß

    Kommentar


    • #3
      Dafür ist die API ja da.

      Aber ich verstehe dein Vorhaben ehrlich gesagt nicht.

      Kommentar


      • #4
        Hey
        Ich hab hier einige tausend Kunden Daten wo ich Zeile für Zeile Namen PLZ und Ort per Copy and Paste in Google kopiere und dann selber auswerte, ob es noch diesen Kunden gibt und ob dieser Kunde eine eigene HP hat oder nicht. Hat der Kunde eine HP, so wird Er von mir in unsere Datenbank als noch aktiv eingepflegt.

        Genau diese Prozedur will ich mir zukünftig Sparren, da ich von meinen Kollegen noch ca. 35.000 Kundendaten bekomme die ich nicht Manuel auswerten kann.

        Mit Google API kann ich leider nur 100 Suchen Täglich durchführen
        Zur Bessern Verständnis

        Hab eine Datenbank (SQL) mit ca.
        35.000 Datensetzten also Kundennummer, Name, Straße, Plz und Ort

        Dieses Script soll also Name, Staße, Plz und Ort in google Suchen und mir von der ersten Seite (Suchergebnis) die 10 gefunden URLs in die Datenbank zurückspielen (hinter Ort)
        Zuletzt geändert von CoolCopper; 29.12.2010, 10:47.

        Kommentar


        • #5
          Sooo hab jetzt noch ein wenig herumexperimentiert, leider komm ich zu Zeit aber an den Punkt nicht weiter wo per fopen die Seite geladen wird. Hier lädt mein Browser alle Daten Sätze die in der Datenbank sind und diese führt zum Absturz des Browsers.

          Wie erreiche ich mit fopen, dass ein Seite nach der anderen Seite abgearbeitet wird? Danach kann ich mich dem Beriech widmen der mein Resultat nach http: / URL durchsucht und diese in die Datenbank schreibt.

          PHP-Code:
          <?php
                   $mysqlhost 
          "XXXXXX"// MySQL-Host angeben
                   
          $mysqluser "XXXXXX"// MySQL-User angeben
                   
          $mysqlpwd "XXXXXX"// Passwort angeben
                   // Login an SQL Datenbank
                   
          $conn mysql_connect("$mysqlhost""$mysqluser""$mysqlpwd") or die ("Keine Verbindung moeglich");
                   
          $mydb mysql_select_db("XXXXXX") or die ("Die Datenbank existiert nicht.");

              if (!
          $conn) {
              echo 
          "Keine Verbindung zur DB: " mysql_error();
              exit;
            }

              if (!
          $mydb) {
              echo 
          "Kann mydb nicht auswählen: " mysql_error();
              exit;
            }
              
          $sql "SELECT * FROM `Tabelle1`";
              
          $result mysql_query($sql);

              while(
          $row mysql_fetch_array($result)) {
              
          //gibt die Anfrage an Google (Name+Ort)
              
          $url 'http://www.google.de/#q='.$row['Name']."+".$row['Strasse']."+".$row['Ort'];
              
          //Seite Durchsuchen
              
          $fp = @fopen($url);

              while(!
          feof($fp))
                   {
                   
          $zeile fgets($fp200); //200 Anzahl Zeichen einer Zeile
              
          }

              
          fclose($fp);
          }

              if (!
          $result) {
              echo 
          "Anfrage ($sql) konnte nicht ausgeführt werden : " mysql_error();
              exit;
            }

              if (
          mysql_num_rows($result) == 0) {
              echo 
          "Keine Zeilen gefunden, nichts auszugeben, daher Abbruch";
              exit;
            }

          mysql_free_result($result);
          ?>
          Abgleich und suche nach URL:

          PHP-Code:
              // URL holen
              
          preg_match('@^(?:http://)?([^/]+)@i',
              
          "$fp"$treffer);
              
          $host $treffer[1];

              
          // die letzten beiden Segmente aus Hostnamen holen
              
          preg_match('/[^.]+\.[^.]+$/'$host$treffer); 
          Zuletzt geändert von CoolCopper; 29.12.2010, 13:50.

          Kommentar


          • #6
            Entferne das @ vor fopen und drehe das error_reporting auf!

            Kommentar


            • #7
              Alternative zu Google

              Also wenn es nicht unbedingt Google sein muss:

              Yahoo! Search BOSS - YDN
              Hier bekommst Du Deine SuchErgebnisse sauber aufbereitet als XML.

              Example: http://boss.yahooapis.com/ysearch/web/v1/"Apple Pie"?appid=xyz&format=xml
              Zuletzt geändert von rei; 04.01.2011, 09:03. Grund: Beispiel eingefügt
              meine Tochter: Mia Viktoria Neidl
              und ich: Neidl Reinhard - Webprogrammierung

              Kommentar


              • #8
                hey rei, danke ist genau dass was ich gesucht habe



                Und bei dieser API kann ich ja 5.000 Suchen pro Tag abarbeiten wooow...

                Zuletzt geändert von CoolCopper; 04.01.2011, 14:45.

                Kommentar


                • #9
                  Darf ich Fragen für was man so was braucht ?
                  z.B.
                  Google 45+bremen

                  für was braucht man 10 Ergebnisse?

                  Kommentar

                  Lädt...
                  X