Parsen von HTML Seiten
Ojamaha
- javascript
0 Jörg Peschke0 Dieter Raber0 lina-
Hallo!
Wie kann ich eine Seite parsen, ohne PHP oder Perl zu benutzen sondern nur Javascript. Ich möchte von einer Seite legendlich das 2. img tag und die dahinterstehende Datei haben und das erste Wort "max." und "min.".
Wie kann ich so etwas in Javascript umsetzen?
MfG
Moin,
Wie kann ich eine Seite parsen, ohne PHP oder Perl zu benutzen sondern nur Javascript. Ich möchte von einer Seite legendlich das 2. img tag und die dahinterstehende Datei haben
Dies kannst Du relativ leicht erreichen mit dem DOM_Befehl getElementsByTagName:
<script type="text/javascript">
function get2ndImgSrc () {
return(document.getElementsByTagName("img")[1].src);
}
</script>
und das erste Wort "max." und "min.".
Wie kann ich so etwas in Javascript umsetzen?
Das geht auch, nur was willst Du dann konkret damit tun? Willst Du wissen ob so ein Wort existiert? Dann würde ich sowas machen:
<script type="text/javascript">
function wortExists (wort) {
var htmlText = document.getElementsByTagName("body")[0].innerHTML;
return((htmlText.indexOf(wort) >= 0));
}
</script>
und dann aufrufen mit z.b.
if (wortExists("max.")) {
// dann tue irgendwas }
Viele Grüße,
Jörg
Dies kannst Du relativ leicht erreichen mit dem DOM_Befehl getElementsByTagName:
<script type="text/javascript">
function get2ndImgSrc () {
return(document.getElementsByTagName("img")[1].src);
}
</script>
Ja aber diesen müsste ich doch auf der Sourceseite einbauen oder? Ich möchte aber eine PDA-Wetterseite auslesen um nur das erste img lokal bei mir dazustellen...
Das mit dem min. mac. wäre ideal muss aber erstmal nicht, es reicht das Bild, aber das hat halt nicht immer den selben Dateinamen, es steht aber immer an der selbenstelle im selben img tag...
Hallo Ohjamaha,
Wenn die Seite nicht auf der gleichen Domain laeuft wie deine eigene Seite hast du mit Javascript wohl keine Chance (same origin policy)
Gruß,
Dieter
Wenn die Seite nicht auf der gleichen Domain laeuft wie deine eigene Seite hast du mit Javascript wohl keine Chance (same origin policy)
Angenommen, ich will nur herruasfinden, wie die datei heißt, die da zu finden ist.
Also ob sie so____.gif oder bwk____.gif oä. heißt.... Kann ich dann nicht diesen Namen nutzen um ihn in eine feste URL einzufügen?, denn die Datei ist immer im gleichen Ordner, ich brauche also nur den Namen.
Tag Ojamaha.
Wenn die Seite nicht auf der gleichen Domain laeuft wie deine eigene Seite hast du mit Javascript wohl keine Chance (same origin policy)
Angenommen, ich will nur herruasfinden, wie die datei heißt, die da zu finden ist.
Das ist egal, es geht nicht mit Javascript.
Also ob sie so____.gif oder bwk____.gif oä. heißt.... Kann ich dann nicht diesen Namen nutzen um ihn in eine feste URL einzufügen?
Hast du dich darüber informiert, ob du damit evtl. Rechte Dritter tangierst? Und wenn das so wäre, hast du dafür die Erlaubnis des Dritten?
Siechfred
Ja aber diesen müsste ich doch auf der Sourceseite einbauen oder? Ich möchte aber eine PDA-Wetterseite auslesen um nur das erste img lokal bei mir dazustellen...
Ähhh, Du willst das Bild klauen ?
Hi,
Ja aber diesen müsste ich doch auf der Sourceseite einbauen oder?
Ja.
Ich möchte aber eine PDA-Wetterseite auslesen um nur das erste img lokal bei mir dazustellen...
Außerdem: Ohne Genehmigung ohnehin nicht legal - und natürlich abmahnungsverdächtig (falls dich die Illegalität nicht stört).
Und das Einbinden der Original-URL des Bildes nennt "Trafic-Klau".
Gruß, Cybaer
Hallo,
Ich möchte von einer Seite legendlich das 2. img tag und die dahinterstehende Datei haben
Dies kannst Du relativ leicht erreichen mit dem DOM_Befehl getElementsByTagName:
<script type="text/javascript">
function get2ndImgSrc () {
return(document.getElementsByTagName("img")[1].src);
}
</script>
Das geht viel einfacher, schneller und kompatibler mit document.images[1].src aus JavaScript bzw. DOM HTML.
function wortExists (wort) {
var htmlText = document.getElementsByTagName("body")[0].innerHTML;
return((htmlText.indexOf(wort) >= 0));
}
Auch hier ist getElementsByTagName überflüssig, denn es gibt document.body aus DOM HTML.
Mathias
Hallo Ojamaha,
Solange das sie aktuelle Seite ist, ist das relativ einfach. Du erreichst das Bild mit document.getElementsByTagName('img')[1] und kannst dann auf seine Eigenschaften zugreifen. Mit min und max ist das etwas schwieriger. Stehen die immer im gleichen Element? Sagen wir mal, die stehen immer in einem <p>. Dann nimmst du mit der gleichen Methode alle <p> auf und parst deren textNode mit einem regulaeren Ausdruck.
Sollte es sich bei der zu durchsuchenden Seite nicht um die aktuelle Seite handeln, kannst du sie beispielsweise in ein iframe laden und dann entsprechend durchsuchen.
Das notwendige Ruestzeug findet du hier http://de.selfhtml.org/javascript/objekte/document.htm
Gruß,
Dieter
moin Ojamaha :)
Wie kann ich eine Seite parsen, ohne PHP oder Perl zu benutzen sondern nur Javascript. Ich möchte von einer Seite legendlich das 2. img tag und die dahinterstehende Datei haben und das erste Wort "max." und "min.".
Wie kann ich so etwas in Javascript umsetzen?
document.images sollte dir weiterhelfen. Die src-Eigenschaft gibt die die Grafikdatei.
liebe Grüße aus Berlin
lina-