Forum: PC-Programmierung PHP - HTML auslesen


von User (Gast)


Lesenswert?

Hi Leute,
ich würde gern mit PHP den HTML-Inhalt diese 
("https://www.semager.de/keywords/de_test.html";) bzw. dieser 
("https://www.semager.de/keywords/?q=test&lang=de";) Seite Auslesen und 
als String anzeigen lassen. Mit den herkömmlichen befehlen, bekomme ich 
keinen Inhalt, also eine leere Seite. Gibt es eine Möglichkeit dieses 
Problem zu beheben? Wie sieht der dazu passende PHP-Code aus?

MFG und danke schon mal im voraus

ein User

von yesitsme (Gast)


Lesenswert?

User schrieb:
> Mit den herkömmlichen befehlen, bekomme ich
> keinen Inhalt

Was hast du denn schon probiert?
Gibts PHP-Fehler in der /var/log/apache2/error.log ?

von User (Gast)


Lesenswert?

yesitsme schrieb:
> Was hast du denn schon probiert?

file();file_get_contents();fopen();curl diese habe ich schon 
ausprobiert.

yesitsme schrieb:
> Gibts PHP-Fehler in der /var/log/apache2/error.log ?

Nein, es gibt keinen PHP-Fehler, auch nicht im log.


[Es kann auch sein, dass ich die Gegebenheiten nicht richtig nutze.]

von Anderer User (Gast)


Lesenswert?

Ich denke, ein Problem könnte sein, dass die Seite

User schrieb:
> ("https://www.semager.de/keywords/de_test.html";;)

sehr viel Javascript benutzt, weshalb die Seite nun-ja "keinen Inhalt" 
hat. Man müsste die Seite laden lassen, bevor man die Daten ausließt. 
Leider weiß ich nicht, wie das geht, vill. kann hier ein anderer helfen.

von Nick S. (c0re)


Lesenswert?

Muss es php sein? Wie sieht es mit curl aus?

von huh (Gast)


Lesenswert?

Nick S. schrieb:
> Muss es php sein? Wie sieht es mit curl aus?

User schrieb:
> curl diese habe ich schon
> ausprobiert.

von User (Gast)


Lesenswert?

Nick S. schrieb:
> Wie sieht es mit curl aus?

Wie sieh deiner Meinung nach der curl code aus? Ich habe bisher nur 
Online beispiele getestet, das stand dann z.B.

"

  $curl_handle=curl_init();
  curl_setopt($curl_handle,CURLOPT_URL,'http://www.google.com';);
  curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
  curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
  $buffer = curl_exec($curl_handle);
  curl_close($curl_handle);
  if (empty($buffer)){
      print "Nothing returned from url.<p>";
  }
  else{
      print $buffer;
  }

".

Mit Google funktionier dies auch entsprechend gut, aber eben mit

User schrieb:
> "https://www.semager.de/keywords/de_test.html";

leider nicht.

von Weingut P. (weinbauer)


Lesenswert?

probiers so:

$ch = curl_init('https://www.semager.de/keywords/de_test.html';); // 
initialize curl with given url
curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]); // set 
useragent
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // write the response to 
a variable
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true); // follow redirects if 
any
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); // max. seconds to 
execute
curl_setopt($ch, CURLOPT_FAILONERROR, 1); // stop when it encounters an 
error
$buffer = curl_exec($ch);
if (empty($buffer)){
  print "Nothing returned from url.<p>";
}
else{
    print $buffer;
}

von Weingut P. (weinbauer)


Lesenswert?

ist sogar recht simpel, die relevanten Daten sind im tbody,
die Zeilen sind per br umgebrochen, einfach die Daten zu extrahieren

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Falls es noch nicht erledigt ist...

User schrieb:
> file();file_get_contents();fopen();curl diese habe ich schon
> ausprobiert.

Diverse Funktionen muss man gegebenfalls wegen Sicherheitseinstellungen 
erst "aktivieren". (php.ini und Konsorten) - Manche Server / Hoster 
machen das aber trotdem nicht mit. Hoffentlich liegt es nicht daran...

von Kolja L. (kolja82)


Lesenswert?

Tim S. schrieb:
> Hoffentlich liegt es nicht daran...

Und wenn schon, XXAMP und gut :)

von Tim S. (Firma: tsx89) (freak_ts) Benutzerseite


Lesenswert?

Kolja L. schrieb:
> XXAMP

XXAMP, XAAMP, XAMMP und manchmal XAMPP.
Jetzt hab ich sie alle gesehen.
LAMP und LIMP Variationen fehlen noch.
N ander´s mal.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.