ebody: Ajax und Google Suche

Hallo,

per JQuery Ajax Funktion lese ich den Code einer Seite ein. Das funktioniert auch für jede URL, nur wenn ich eine Google URL inkl. Suchparameter abfrage (z.B. https://www.google.de/search?q=jquery+ajax), funktioniert es nicht.

Andere URLs mit https habe ich getestet und hat immer funktioniert.

Wenn ich nur die ajax.php mit der Google URL teste ist alles ok.

Hat jemand eine Idee, warum das nicht funktioniert?

Jquery Code:

$.ajax({  
			type: "GET",  
			url : "ajax.php",  
			dataType: "json",  
			data: { seite: "https://www.google.de/search?q=jquery+ajax", art: "suche" },  
			error: function () {  
				console.log("Oh no! Something went terribly wrong in here!");  
			}  
		})  
		.done(function (data) {  
				console.log("Inhalt: " + data.content);  
			});

ajax.php Code:

  
set_time_limit(90);  
error_reporting(E_ALL);  
  
//$_GET['seite'] = 'https://www.google.de/search?q=jquery+ajax';  
  
$htmlCode = file_get_contents($_GET['seite']);  
//$htmlCode = $_GET['seite'];  
  
$json = array(  
	"content" => $htmlCode,  
);  
  
//var_dump($json);  
//echo $htmlCode;  
echo json_encode($json);  

Gruß
ebody

  1. Hi,

    per JQuery Ajax Funktion lese ich den Code einer Seite ein. Das funktioniert auch für jede URL, nur wenn ich eine Google URL inkl. Suchparameter abfrage (z.B. https://www.google.de/search?q=jquery+ajax), funktioniert es nicht.

    Was bedeutet „funktioniert nicht“ genau, und was hast du bisher an Debug-Maßnahmen unternommen?

    Hat jemand eine Idee, warum das nicht funktioniert?

    Es könnte schlicht und einfach daran liegen, dass Google sich gegen deine Scraping-Versuche wehrt.
    Wenn du automatisiert suchen willst, solltest du dafür Googles API benutzen.

    MfG ChrisB

    --
    Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
    1. Was bedeutet „funktioniert nicht“ genau, und was hast du bisher an Debug-Maßnahmen unternommen?

      error: function () {  
       console.log("Oh no! Something went terribly wrong in here!");  
      }
      
      • Die Meldung "Oh no! Something went terribly wrong in here!" wird ausgegeben
      • Der gewünschte Effekt tritt nicht ein
      • Ansonsten gibt es keine  Meldungen oder ähnliches

      Als Debugging Maßnahme habe ich bisher eigentlich nur verschiedene URLs getestet.

      Es könnte schlicht und einfach daran liegen, dass Google sich gegen deine Scraping-Versuche wehrt.
      Wenn du automatisiert suchen willst, solltest du dafür Googles API benutzen.

      Das kann natürlich sein, da ich aber nicht täglich mit JQuery und PHP arbeite wollte ich erstmal sichergehen, dass keine Fehler im Script sind, evtl. Konfigurationen (php.ini usw) vorgenommen werden müssen.

      Danke für deine Einschätzungen und Infos.

      Gruß
      ebody

      1. Noch eine Ergänzung.

        Das PHP Script alleine funktioniert ja auch mit der Google URL. Hier wird der Code eingelesen und kann ihn ausgeben.

        Gruß
        ebody

  2. Hi,

    ich bin mir nicht sicher.
    Wenn Google das nicht will, könntest du mit file_get_contents() die URL abfragen und dann mit AJAX die php laden.
    Probiers mal aus :-)

    Viele Grüße aus LA

    --
    ralphi
    1. Hi,

      oben im ajax.php Code lade ich mit file_get_contents() den Code ein und übergebe den.

      Ist das wie von dir gedacht oder meintest du was anderes?

      Gruß
      ebody

      1. oben im ajax.php Code lade ich mit file_get_contents() den Code ein und übergebe den.

        Ist das wie von dir gedacht oder meintest du was anderes?

        ups - hab den code von dir nicht beachtet.
        was hat der Seitenquelltext der Suchseite, mit JSON zu tun?

        Viele Grüße aus LA

        --
        ralphi
        1. ups - hab den code von dir nicht beachtet.
          was hat der Seitenquelltext der Suchseite, mit JSON zu tun?

          Keine Ahnung, ich habe ein Script genommen und es angepasst. Was wäre richtig hier zu verwenden?

          Gruß
          ebody

          1. Keine Ahnung, ich habe ein Script genommen und es angepasst. Was wäre richtig hier zu verwenden?

            nun - dein script bezieht sich wahrscheinlich auf solche 'info-Seiten' die JSON ausgeben.
            Bei der Googlesuchseite, klick mal rechts -> Quelltext anzeigen, bekommste sowas mit file_get_contents.

            Viele Grüße aus LA

            --
            ralphi
            1. Ich habe den Code angepasst

              $.ajax({  
                                      type: "GET",  
                                      url : "ajax.php",  
                                      dataType: "html",  
                                      data: { seite: "https://www.google.de/search?q=jquery+ajax", art: "suche" },  
                                      error: function () {  
                                              console.log("Oh no! Something went terribly wrong in here!");  
                                      },  
              success: function () {  
              				console.log("Hat funktioniert!");  
              			}  
                              })  
                              .done(function (data) {  
                                              console.log("Inhalt: " + data.content);  
                                      });
              

              success Funktion wird ausgeführt. Die error Funktion nicht mehr.

              data.content ist allerdings undefined.

              Schon mal besser als eben, aber noch nicht 100% :-)

              Gruß
              ebody