Hackerboard Wiki HaboBlog
Hackerboard bei Facebook Hackerboard bei Google+ Hackerboard bei Twitter

[HaBo]

 
(Web-) Design und webbasierte Sprachen Tipps & Tricks, Designabgleich, HTML & Javascript, Flash, ASP, PHP, Perl/CGI...

Seite ( HTML/PHP ) auslesen und verwerten?

Diskussion: Seite ( HTML/PHP ) auslesen und verwerten? im Forum (Web-) Design und webbasierte Sprachen, in der Kategorie Web, Network & Multimedia Palace; Anzeige Ich hab vor kurzem ein "Programm" gesehn mit dem man bestimmte Daten einer Internetseite kommt. Die Seite wird komplett ...

Antwort
Alt 27.08.05, 13:14   #1 (permalink)
 
Registriert seit: 24.07.05
ghost Leistung: Z3
Likes: 3
Standard Seite ( HTML/PHP ) auslesen und verwerten?

Anzeige

Ich hab vor kurzem ein "Programm" gesehn mit dem man bestimmte Daten einer Internetseite kommt. Die Seite wird komplett markiert und kopiert. Dann wird die kopie in dem besagten Programm in ein Eingabefeld hineinkopiert und nach Angabe des verwendeten Brosers ( Wahl zwischen IE und dem Rest =) ) wurde aus der Seite die nötigen Daten herausgelesen ( Für die dies interessiert, es war ein Kolotool für das Browsergame Inselkampf ).

Meine Frage ist nun, wie geht das bzw.:
- Wie kann man sowas in HTML / PHP ( zur not noch Java ) erstellen?
- Gibt es hierfür Beispiele in anderen Progs bzw. entsprechende Code-Schnippsel :P?

Vielen Dank für eure Hilfe!!! ;)

ghost ist offline   Mit Zitat antworten
Alt 27.08.05, 18:07   #2 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

Das ganze geht mit PHP.
Für ne etwas genauere Anleitung kannst du xblax eine PN schicken, der hat sowas gerade erst gemacht.
Is aber grad im Urlaub und kommt net jeden Tag aufs Board.

Ich hab soviel mitbekommen:
Du kannst an die Page einen gefälschten POST-header schicken, so dass sie dir den Code schickt.
Wenn du den Code einfach nur reinkopieren willst, kannst du das weglassen.
Dann musst du nur wissen, WAS du wissen willst, den Code analysieren und dann Stück für Stück das drumrum löschen lassen (str-replace, preg-replace).
Ranger ist offline   Mit Zitat antworten
   
HaBOT
 
- Anzeige -

Werbung ist gerade online    
Alt 30.08.05, 17:59   #3 (permalink)
 
Registriert seit: 01.03.04
TheNeedle Leistung: Facit NTK
TheNeedle eine Nachricht über ICQ schicken
Likes: 0
Standard

also n kumpel von mir hat was aehnliches gemacht, aber halt mit perl! das macht sich fuer solche sachen (rumspielen mit strings) besser! auch nich schlecht is ein kleines bash script
TheNeedle ist offline   Mit Zitat antworten
Alt 30.08.05, 18:20   #4 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

was verstehst du denn unter "benötigte Daten"?

Ich hatte mal ein script, was die news von MTV geklaut hat. evtl. hilft dir das weiter. Aber sag mir erstmal welche informationen du genau filtern willst.
flame ist offline   Mit Zitat antworten
Alt 30.08.05, 20:51   #5 (permalink)
Themenstarter
 
Registriert seit: 24.07.05
ghost Leistung: Z3
Likes: 3
Standard

In einem Game gibts einen Ozean mit 100 Abschnitten. Jeder Abschnitt enthält max 25 Inseln. Da ein automatisches auslesen verboten ist ( naja, wenns einfacher wäre ) wollte ich es so machen, das ich irgendwie ( ? z.B.: indem ich die Teilkarte in ein Programm ? hineinkopiere und das Programm dann die Teilkarte ausliest und zusammen mit den anderen Teilkarten eine komplette Karte erstellt ) eine komplette Karte bekomme.

@flame: benötigte Daten wären:
- Name der Insel
- Inselinhaber
- Allianz
- Inselpos
- Punkte

Quelltext einer Teilkarte:
<html><head><link rel="stylesheet" type="text/css" href="36_dateien/style.css"><script type="text/javascript" src="36_dateien/lib.js"></script></head><body onload="start()"><h1>Karte</h1><hr align="left" width="420">28.08.2005 11:00:39 | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=settings">Einstellungen</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=mail&amp;sub=invite">Einladu ng</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;a=logout">Abmelden</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=mail"><img src="36_dateien/m_off.gif" border="0"></a><br>Du <b>fallcon</b>, bist Herrscher über die Insel Isle of Storm (20:24:1)<table border="1" cellpadding="3" cellspacing="0" width="420"><tbody><tr><td width="33%"><img src="36_dateien/gold.gif"> 3117</td><td width="33%"><img src="36_dateien/stones.gif"> 1652</td><td><img src="36_dateien/wood.gif"> 4356</td></tr></tbody></table><br><table border="0" cellpadding="3" cellspacing="1" width="420"><form action="/s7.php?s=bkey0u&amp;p=map" method="post"></form><tbody><tr><td bgcolor="#f0f0f0"><b>Ozean: </b><input name="pos1" value="20" size="3" type="text"><b> Inselgruppe: </b><input name="pos2" value="36" size="3" type="text"><b> Spieler: </b><input size="8" name="highlight" value="" type="text"> <input value="anzeigen" type="submit"></td></tr></tbody></table><br><img src="36_dateien/s7.png" usemap="#map" border="0"><map name="map"><area shape="rect" coords="0,9,9,411" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;pos1=20&amp;pos2=35& amp;highlight=" title="Ozean: 20
Inselgruppe: 35"><area shape="rect" coords="411,9,420,411" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;pos1=20&amp;pos2=37& amp;highlight=" title="Ozean: 20
Inselgruppe: 37"><area shape="rect" coords="9,0,411,9" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;pos1=20&amp;pos2=26& amp;highlight=" title="Ozean: 20
Inselgruppe: 26"><area shape="rect" coords="9,411,411,420" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;pos1=20&amp;pos2=46& amp;highlight=" title="Ozean: 20
Inselgruppe: 46"><area shape="rect" coords="338,174,409,245" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=15" title="Insel: 20:36:15
Koordinaten: 20:36:15
Herrscher: Odin
Allianz: [oC.08]
Punkte: 303"><area shape="rect" coords="338,256,409,327" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=20" title="Insel: Iluminata
Koordinaten: 20:36:20
Herrscher: warbird17
Allianz: [Mars]
Punkte: 327"><area shape="rect" coords="10,338,81,409" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=21" title="Insel: 20:36:21
Koordinaten: 20:36:21
Herrscher: Odin
Allianz: [oC.08]
Punkte: 166"><area shape="rect" coords="256,10,327,81" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=4" title="Insel: unbenannt
Koordinaten: 20:36:4
Herrscher: Achillis81
Punkte: 1"><area shape="rect" coords="174,92,245,163" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=8" title="Insel: unbenannt
Koordinaten: 20:36:8
Punkte: 1"><area shape="rect" coords="92,338,163,409" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=22" title="Insel: unbenannt
Koordinaten: 20:36:22
Punkte: 1"><area shape="rect" coords="92,256,163,327" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=17" title="Insel: Azzurrino
Koordinaten: 20:36:17
Herrscher: 0815Luca
Allianz: [o8i5]
Punkte: 23"><area shape="rect" coords="256,174,327,245" href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map&amp;sub=isle&amp;pos1=20 &amp;pos2=36&amp;pos3=14" title="Insel: Schutz von Denkmal
Koordinaten: 20:36:14
Herrscher: violett
Punkte: 2"></map><hr align="left" width="420"><a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=main">Übersicht</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=alliance">Allianz</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=map">Karte</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=isles">Inseln</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=market">Markt</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=ranking">Rangliste</a> | <a href="http://213.203.201.100/s7.php?s=bkey0u&amp;p=calc">Rechner</a><br><br>0.02</body></html>
ghost ist offline   Mit Zitat antworten
Alt 30.08.05, 21:42   #6 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

Naja, das sollte nicht all zu schwer sein..

Zuerst musst du das ganze halt mit nem formular übergeben, wenn du es so nicht auslesen darfst/kannst.

Und danach musst du nur mit ereg() [siehe http://manuals.phpforum.de/php/function.ereg.php] den string durchsuchen.
den genauen syntax für den regulären ausdruck kann ich dir jetzt auch net sagen, aber du hast ja feste anhaltspunkte wie: Alianz: (1), Punkte: (2). Und so lässt sich doch gasnz leicht n array generieren.

Das skript was ich bei MTV benutzt hab kannste da nicht anwenden, weil ich da immer zwischen zwei <Tags> ausgelesen hab. Aber wenn du dir das mit ereg() und den regulären ausdrücken [http://www.php-resource.de/tutorials/read/10/1/] durchschaust, müsste dir schon geholfen sein.
flame ist offline   Mit Zitat antworten
Alt 31.08.05, 13:45   #7 (permalink)
 
Registriert seit: 22.05.05
Ranger Leistung: Facit NTK
Likes: 0
Standard

Genau sowas hat mein Kumpel (xblax) für ein anderes Game gemacht.
Sehr praktisch ist dabei die funktion explode()
Damit kannst du Teile eines Textes zw. 2 bestimten Strings herausschneiden.

PHP-Code:
<?php
function get_text($start,$end,$hackstay){
    
$temp explode($start,$hackstay);
    
$temp explode($end$temp[1]);
    
$result $temp[0];

    return 
$result;
}
Somit kannst du z.B. als erstes den Code zwischen <body> und </body> herausschneiden und darin dann weitere nicht benötigten Sachen löschen.
Ranger ist offline   Mit Zitat antworten
Alt 31.08.05, 14:26   #8 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

Jo.. so sah meine hauptfunktion im MTV-script auch aus.

ABER diese möglickeit hat den nachteil, das immer nur das erste vorkommen einer zeichenkette aufgelöst wird. Aber das kan er hier nicht gebrauchen. da eine unbestimmte zahl aufgelistet wird, die den gleichen basisaufbau hat.

Hier muss man eher Immer nach dem ausdruck Alianz suchen, und die drauffolgende zeichenkette zwischen [ und ] zurückgeben.
Das ganze wird dann im Alianzarray gespeichert, und so verfährt man auch mit den anderen. Und dann hast du deine arrays Alianz[] inselpos[] Herrscher[] usw. und kanst die informationen dann zusammenfügen.
flame ist offline   Mit Zitat antworten
Alt 04.09.05, 10:53   #9 (permalink)
 
Registriert seit: 23.03.05
xblax Leistung: 8086
Likes: 22
Standard

Zunächsteinmal kannst du diese Funktion benutzen, um Post oder Get-Anfragen an den Webserver zu senden:

Code:
$referer = "http://www.was-du-willst.de/";

function PostToHost($host, $path, $method='get', $data_to_send=0) {
  global $referer;

  $fp = fsockopen($host, 80);

  if($method == 'post')
  	fputs($fp, "POST $path HTTP/1.1\r\n");
  else
  	fputs($fp, "GET  $path HTTP/1.1\r\n");

  fputs($fp, "Host: $host\r\n");
  fputs($fp, "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5\r\n");
  fputs($fp, "Accept-Language: de-de,de;q=0.8,en-us;q=0.5,en;q=0.3\r\n");
  fputs($fp, "Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7\r\n");
  fputs($fp, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.1; de-DE; rv:1.7.8) Gecko/20050511 Firefox/1.0.4\r\n");
  fputs($fp, "Referer: $referer\r\n");

  if($method == 'post'){
  	fputs($fp, "Content-type: application/x-www-form-urlencoded\r\n");
  	fputs($fp, "Content-length: ". strlen($data_to_send) ."\r\n");
  }

  fputs($fp, "Connection: close\r\n\r\n");
  fputs($fp, $data_to_send);
  while(!feof($fp)) {
      $res .= fgets($fp, 128);
  }

  fclose($fp);
  $referer = 'http://'.$host.$path;

  return $res;
}
Wenn du den Quelltext von Hand einkopieren willst, brauchst du das nicht, aber das erstellen der Karte dauert halt wesentlich länger.

Wenn der Quelltext in deinem Programm ist, würde ich folgendermaßen vorgehen:
1. Alles um die benötigten Informationen entfernen bis du in jeder Zeile nur noch eine Information hast. Also immer:
Code:
Name
Herrscher
Allianz
Punkte
Kooridnaten
Name
Herrscher
...
2. Mit explode("\n") das ganze in ein Array umwandeln
3. Mit array_chunk($daten, 5); das ganze in gleich große Teilarrays verwandeln.
4. Was du mit den Daten dann machst bleibt dir überlassen.

Du musst halt ne Menge experimentieren, bis es fehlerfrei funktioniert.
xblax ist offline   Mit Zitat antworten
Alt 04.09.05, 11:30   #10 (permalink)
Themenstarter
 
Registriert seit: 24.07.05
ghost Leistung: Z3
Likes: 3
Standard

Thx für eure Hilfe!!!

Dann werd ich mich mal ransetzten unds "probieren" anfangen...
ghost ist offline   Mit Zitat antworten
Alt 04.09.05, 13:24   #11 (permalink)
 
Registriert seit: 15.08.03
flame Leistung: Facit NTK
flame eine Nachricht über ICQ schicken
Likes: 0
Standard

Das problem dabei ist, dass die zu entfernenden zeichenketten imemr exakt gleich bleiben müssen.

mit der ereg() funktion, hat man da mehr spielraum, und ein geringeres datenaufkommen.
das problem dabei ist ledigtlich den regulären ausdruck richtig hunzubrinegn, aber da mus man haltz mal ne stunde oder so recharchieren,
flame ist offline   Mit Zitat antworten
Antwort
   
- Anzeige -

Werbung ist gerade online    

[HaBo] » Web, Network & Multimedia Palace » (Web-) Design und webbasierte Sprachen » Seite ( HTML/PHP ) auslesen und verwerten?
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind aus
Pingbacks sind aus
Refbacks sind aus


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Seite Auslesen (+cookie) -Tux- (Web-) Design und webbasierte Sprachen 5 16.11.08 16:14
Auslesen von html/php Paulaner-sls Code Kitchen 9 07.10.06 16:27
PHP in html seite einbinden BloodEye (Web-) Design und webbasierte Sprachen 10 15.12.05 22:59
html tags auslesen Iker C. (Web-) Design und webbasierte Sprachen 2 24.06.05 08:40
etwas mit html an eine seite übermitteln pacman (Web-) Design und webbasierte Sprachen 4 15.06.04 15:46


1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61