AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Object-Pascal / Delphi-Language Delphi Link aus Quelltext raussuchen und auflisten
Thema durchsuchen
Ansicht
Themen-Optionen

Link aus Quelltext raussuchen und auflisten

Ein Thema von knolli · begonnen am 8. Jan 2008 · letzter Beitrag vom 16. Jan 2008
Antwort Antwort
Seite 2 von 3     12 3      
s-off
(Gast)

n/a Beiträge
 
#11

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 10:15
Zitat von marabu:
Berücksichtigt man die besondere Semantik (HTML), dann hilft vielleicht Hier im Forum suchenExtractLinks() weiter.
Sag ich doch (wusste, dass Du irgendwann mal etwas dazu geschrieben hast, habe es nur noch mehr so schnell wiedergefunden)
  Mit Zitat antworten Zitat
Benutzerbild von knolli
knolli

Registriert seit: 22. Sep 2006
Ort: Zittau
83 Beiträge
 
Delphi 7 Enterprise
 
#12

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 11:54
Sorry mit dem ExtractLinks() kann ich nix anfangen...

ich hab das hier mal gestestet mit google.de

Memo_Links.Lines.Add(Copy(Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i]),PosEx('">',Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i])))); und raus kommt das hier:

Delphi-Quellcode:
charset=UTF-8"

















































href="http://images.google.de/imghp?hl=de&tab=wi"

href="http://maps.google.de/maps?hl=de&tab=wl"

href="http://news.google.de/nwshp?hl=de&tab=wn"

href="http://www.google.de/prdhp?hl=de&tab=wf"

href="http://mail.google.com/mail?hl=de&tab=wm"


onclick="this.blur();gbar.tg(event);return false"


href="http://blogsearch.google.de/?hl=de&tab=wb"

href="http://books.google.de/bkshp?hl=de&tab=wp"

href="http://docs.google.com/?hl=de&tab=wo"

href="http://picasaweb.google.de/home?hl=de&tab=wq"

href="http://groups.google.de/grphp?hl=de&tab=wg"

href="http://www.google.com/calendar?hl=de&tab=wc"

href="http://www.google.de/reader?hl=de&tab=wy"

href="http://video.google.de/?hl=de&tab=wv"

href="http://www.google.de/intl/de/options/"




hl%3Dde&usg=AFQjCNEuFEstOqdyi_oJiIgrhN9DEbl2cA"


/www.google.de/&hl=de"






title="Google-Suche" value=""
type=submit value="Google-Suche"
type=submit value="Auf gut Glück!"






style="text-align:left"

type=radio name=meta value="lr=lang_de"

value="cr=countryDE"
ich meine hier sind ein paar links drin aber es findet wie man sehen kann unendlich viele leere Zeilen und auch noch anderes zeug, was keine links sind...

was noch ist, von denlinks die hier gefunden wurden, bracuhe ich das ganze OHNE href=" was muss ich noch ändern damit das nicht mit erscheint? ich meine wwenn ich noch +7 also 7 zeichen später anfange stehet zum ende noch anderes zeug da zb:

Delphi-Quellcode:
http://news.google.de/nwshp?hl=de&tab=wn">News<

http://www.google.de/prdhp?hl=de&tab=wf">Shopp

http://mail.google.com/mail?hl=de&tab=wm">Mail<


k="this.blur();gbar.tg(event);return false"><u>Me


http://blogsearch.google.de/?hl=de&tab=wb">Blogs

http://books.google.de/bkshp?hl=de&tab=wp">Büche

http://docs.google.com/?hl=de&tab=wo">Dokum

http://picasaweb.google.de/home?hl=de&tab=wq">Fotos

http://groups.google.de/grphp?hl=de&tab=wg">Group

http://www.google.com/calendar?hl=de&tab=wc">Kalen

http://www.google.de/reader?hl=de&tab=wy">Reade
also wie kann ich das umgehen, dass neben dem Link auch noch anderes drinsteht?
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#13

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 11:58
Kannst du mal die eigentlichen Daten posten?
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#14

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 11:59
Das 'href' steht drin, da Du Deine Copy-Funktion nicht bei Pos('a href'...) losschicken darfst, sondern erst danach., Du musst also noch die Länge von 'a href' zu der Position dazu addieren.
Schau Dir dazu das Beispiel von mashutu an.

Mit Deinem ganzen Vorhaben wirst Du so aber trotzdem nicht weit kommen. Und ich verstehe auch nicht, warum Du nicht das Beispiel von marabu aufgreifst... naja, Deine Sache.

Reguläre Ausdrücke wären eine weitere Möglichkeit.
  Mit Zitat antworten Zitat
Benutzerbild von knolli
knolli

Registriert seit: 22. Sep 2006
Ort: Zittau
83 Beiträge
 
Delphi 7 Enterprise
 
#15

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 12:25
also nochmal neu!
ich habe bis jetz:
Delphi-Quellcode:
unit U_Test;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, StrUtils;

type
  TForm1 = class(TForm)
    Memo_Quellcode: TMemo;
    Memo_Links: TMemo;
    Button1: TButton;
    Button2: TButton;
    Memo_fertig: TMemo;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
  private
    { Private-Deklarationen }
  public
    { Public-Deklarationen }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.FormCreate(Sender: TObject);
begin
Memo_Links.Clear;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
for i:=1 to Memo_Quellcode.Lines.Count do
// String wo kopiert wird #=============== von WO =================#============================== WIE WEIT ====================================
Memo_Links.Lines.Add(Copy(Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i])+7,PosEx('">',Memo_Quellcode.Lines[i],POS('<a href="',Memo_Quellcode.Lines[i]))));
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
begin
For i:=1 to Memo_Links.Lines.Count do
begin
Memo_fertig.Lines.Add(COPY(Memo_Links.Lines[i],0,Length(memo_Links.Lines[i])-7));
end;
end;

end.
es kommt das raus:

Delphi-Quellcode:
t=UTF-8

















































[url]http://images.google.de/imghp?hl=de&tab=wi[/url]

[url]http://maps.google.de/maps?hl=de&tab=wl[/url]

[url]http://news.google.de/nwshp?hl=de&tab=wn[/url]

[url]http://www.google.de/prdhp?hl=de&tab=wf[/url]

[url]http://mail.google.com/mail?hl=de&tab=wm[/url]


k="this.blur();gbar.tg(event);return false


[url]http://blogsearch.google.de/?hl=de&tab=wb[/url]

[url]http://books.google.de/bkshp?hl=de&tab=wp[/url]

[url]http://docs.google.com/?hl=de&tab=wo[/url]

[url]http://picasaweb.google.de/home?hl=de&tab=wq[/url]

[url]http://groups.google.de/grphp?hl=de&tab=wg[/url]

[url]http://www.google.com/calendar?hl=de&tab=wc[/url]

[url]http://www.google.de/reader?hl=de&tab=wy[/url]

[url]http://video.google.de/?hl=de&tab=wv[/url]

[url]http://www.google.de/intl/de/options/[/url]




e&usg=AFQjCNEuFEstOqdyi_oJiIgrhN9DEbl2cA


oogle.de/&hl=de






"Google-Suche" value="
ubmit value="Google-Suche
ubmit value="Auf gut Glück!






"text-align:left

adio name=meta value="lr=lang_de

"cr=countryDE
was ich jetzt noch wissen muss, ist wie ich den überflüssigen schriebs entfernen kann...
@s-off: warum werde ich damit nich tweit kommen?
und ich habe mir das beispiel angeschaut, aber ich finde es zu kompliziert. ich kann da einfach nix draus lesen (sorry aba da bin ich vllt zu blöd dafür)
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#16

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 12:37
Nein, ich wollte eigentlich die Daten haben die du LIEST. Die Rohdaten also - nicht den Quelltext!
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
Benutzerbild von knolli
knolli

Registriert seit: 22. Sep 2006
Ort: Zittau
83 Beiträge
 
Delphi 7 Enterprise
 
#17

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 15:43
oh...

naja also hier meine rohdaten:

Delphi-Quellcode:
<html><head><meta http-equiv="content-type" content="text/html; charset=UTF-8"><title>Google</title><style>body,td,a,p,.h{font-family:arial,sans-serif}.h{font-size:20px}.h{color:#3366cc}.q{color:#00c}.ts td{padding:0}.ts{border-collapse:collapse}#gbar{float:left;font-weight:bold;height:22px;padding-left:2px}#gbh{border-top:1px solid #c9d7f1;font-size:0;height:0;position:absolute;right:0;top:24px;width:200%}#gbi{background:#fff;border:1px solid;border-color:#c9d7f1 #36c #36c #a2bae7;top:24px;z-index:1000}#guser{padding-bottom:7px !important}#gbar,#guser{font-size:13px;padding-top:1px !important}@media all{.gb1,.gb3{height:22px;margin-right:.73em;vertical-align:top}}#gbi,.gb2{visibility:hidden;position:absolute}.gb2{z-index:1001}#gbar a,#gbar a:active,#gbar a:visited{color:#00c;font-weight:normal}.gb2 a,.gb3 a{text-decoration:none}.gb2 a{display:block;padding:.2em .5em}#gbar .gb2 a:hover{background:#36c;color:#fff}</style><script>window.google={kEI:"Xt2ER7mRHYKAnQOhiuRD",kEXPI:"17259,17735",kHL:"de"};
function sf(){document.f.q.focus()}
window.clk=function(b,c,d,e,f,g){if(document.images){var a=encodeURIComponent||escape;(new Image).src="/url?sa=T"+(c?"&oi="+a(c):"")+(d?"&cad="+a(d):"")+"&ct="+a(e)+"&cd="+a(f)+(b?"&url="+a(b.replace(/#.*/,"")).replace(/\+/g,"%2B"):"")+"&ei=Xt2ER7mRHYKAnQOhiuRD"+g}return true};
window.gbar={};(function(){;var i=window.gbar,a,n,b,o="visible";function p(c,g,f){c.visibility=c.visibility==o?"hidden":o;c.left=g+"px";c.top=f+"px"}i.tg=function(c){var g=0,f,d,k,e=0,h=0,l=window.navExtra;!n&&(n=document.getElementById("gbar"));!b&&(b=n.getElementsByTagName("span"));(c||window.event).cancelBubble=true;if(!a){a=document.createElement(Array.every||window.createPopup?"iframe":"div");a.frameBorder="0";a.id="gbi";a.scrolling="no";a.src="#";document.body.appendChild(a);if(l&&b[8])for(var q in l){var m=document.createElement("span");m.appendChild(l[q]);m.className="gb2";b[0].parentNode.insertBefore(m,b[8])}document.onclick=i.close}for(;b[e];e++){d=b[e];k=d.className;if(k=="gb3"){f=d.offsetLeft;while(d=d.offsetParent)f+=d.offsetLeft}else if(k=="gb2"){p(d.style,f+1,25+g);h=Math.max(h,d.offsetWidth);g+=20}}for(e=0;b[e];e++){if(b[e].className=="gb2"){b[e].style.width=h+"px"}}var j=a.style;j.height=g+"px";j.width=h+"px";p(j,f,24)};i.close=function(c){a&&a.style.visibility==o&&i.tg(c)};})();</script></head><body bgcolor=#ffffff text=#000000 link=#0000cc vlink=#551a8b alink=#ff0000 onload="sf();if(document.images){new Image().src='/images/nav_logo3.png'}" topmargin=3 marginheight=3><div id=gbar><nobr><span class=gb1>Web</a></span> <span class=gb1>[url="http://images.google.de/imghp?hl=de&tab=wi"]Bilder[/url]</span> <span class=gb1>[url="http://maps.google.de/maps?hl=de&tab=wl"]Maps[/url]</span> <span class=gb1>[url="http://news.google.de/nwshp?hl=de&tab=wn"]News[/url]</span> <span class=gb1>[url="http://www.google.de/prdhp?hl=de&tab=wf"]Shopping[/url]</span> <span class=gb1>[url="http://mail.google.com/mail?hl=de&tab=wm"]Mail[/url]</span> <span class=gb3>[url="http://www.google.de/intl/de/options/"]<u>Mehr</u> <span style=font-size:11px>▼</span>[/url]</span> <span class=gb2>[url="http://blogsearch.google.de/?hl=de&tab=wb"]Blogs[/url]</span> <span class=gb2>[url="http://books.google.de/bkshp?hl=de&tab=wp"]Bücher[/url]</span> <span class=gb2>[url="http://docs.google.com/?hl=de&tab=wo"]Dokumente[/url]</span> <span class=gb2>[url="http://picasaweb.google.de/home?hl=de&tab=wq"]Fotos[/url]</span> <span class=gb2>[url="http://groups.google.de/grphp?hl=de&tab=wg"]Groups[/url]</span> <span class=gb2>[url="http://www.google.com/calendar?hl=de&tab=wc"]Kalender[/url]</span> <span class=gb2>[url="http://www.google.de/reader?hl=de&tab=wy"]Reader[/url]</span> <span class=gb2>[url="http://video.google.de/?hl=de&tab=wv"]Video[/url]</span> <span class=gb2>[url="http://www.google.de/intl/de/options/"]und noch mehr &raquo;[/url]</span> </nobr></div><div id=gbh></div><div align=right id=guser style="font-size:84%;padding:0 0 4px" width=100%><nobr>[url="/url?sa=p&pref=ig&pval=3&q=http://www.google.de/ig%3Fhl%3Dde&usg=AFQjCNEuFEstOqdyi_oJiIgrhN9DEbl2cA"]iGoogle[/url] | [url="https://www.google.com/accounts/Login?continue=http://www.google.de/&hl=de"]Anmelden[/url]</nobr></div><center><br clear=all id=lgpd>[img]/intl/de_de/images/logo.gif[/img]

<form action="/search" name=f><table cellpadding=0 cellspacing=0><tr valign=top><td width=25%></td><td align=center nowrap><input name=hl type=hidden value=de><input maxlength=2048 name=q size=55 title="Google-Suche" value="">
<input name=btnG type=submit value="Google-Suche"><input name=btnI type=submit value="Auf gut Glück!"></td><td nowrap width=25%><font size=-2><a href=/advanced_search?hl=de>Erweiterte Suche</a>
[url="/preferences?hl=de>Einstellungen</a>
<a"]Sprachtools[/url]</font></td></tr><tr><td align=center colspan=3><font size=-1><span style="text-align:left">Suche: <input id=all type=radio name=meta value="" checked><label for=all> Das Web </label><input id=lgr type=radio name=meta value="lr=lang_de"><label for=lgr> Seiten auf Deutsch </label><input id=cty type=radio name=meta value="cr=countryDE"><label for=cty> Seiten aus Deutschland </label></span></font></td></tr></table></form>

<font size=-1>[url="/intl/de/ads/"]Werbeprogramme[/url] - [url="/services/"]Unternehmensangebote[/url] - [url="/intl/de/about.html"]Über Google[/url] - <a href=http://www.google.com/ncr>Google.com in English</a></font>

<font size=-2>&copy;2008 Google</font></p></center></body></html>
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#18

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 16:14
Delphi-Quellcode:
procedure getURLs(sName:string);
    procedure processLine(s:string;var t:system.text);
    const
        csStop ='"';
        csStart ='a href=';
        ciStartLen=7;
    var
        sTmp: string;
        iCount,
        iPos: integer;
    begin
        iCount:=0;
        repeat
            inc(iCount);
            iPos:=pos(csStart,s);
            if iPos>0 then
            begin
                s:=copy(s,iPos+ciStartLen+1,Length(s));
                iPos:=pos(csStop,s);
                if iPos>0 then
                begin
                    sTmp:=copy(s,1,iPos-1);
                    s:=copy(s,iPos+1,length(s));
                    if LowerCase(copy(sTmp,1,4))='httpthen //<<<<<<<<!!!!!!!!!!
                        writeln(t,sTmp);
                end;

            end;
        until iPos=0;
    end;
var
    tout,
    t : system.text;
    s : string;

begin
    system.assign(t,sName);
    system.assign(tout,ChangeFileExt(sName,'URLs'));
    reset(t);
    rewrite(tout);
    while not eof(t) do
    begin
        readln(t,s);
        processLine(s,tout);
    end;
    system.close(t);
    system.close(tout);
end;
Das ist nur Quick and dirty. Insbesondere an der Markierung waeren noch andere Protokolle zu pruefen.
Auch der Name der Zieldatei ist einfach nur so...
Aber grundsaetzlich sollte klar werden was Sache ist.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
s-off
(Gast)

n/a Beiträge
 
#19

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 16:38
In seinem Quelltext scheinen auch URLs zu sein, die nicht von Hochkommata eingeschlossen sind
Zitat:
<a href=http://www.google.com/ncr>
Und schon laufen wir wieder vor die Wand.
Ich sage ja, nach diesem kopierehier kopiereda-Schema wird das nichts. Jedenfalls nichts zuverlässiges.
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#20

Re: Link aus Quelltext raussuchen und auflisten

  Alt 9. Jan 2008, 17:08
@s-off:
Ich hab' ja geschrieben, dasses quick and dirty ist und dass er das noch an seine Beduerfnisse anpassen muss.
Scheint ja auch nicht business-critical zu sein, was er sich da zusammenprogrammiert.
Denke aber, dass ich ihm eine Hilfestellung gegeben habe wie er grundsaetzlich vorgehen kann und einen brauchbaren Output bekommt. Klar gibt es noch diverse Syntaxvarianten. Der allgemeinen Nichtstandardisierung im Internet sei dank...
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

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

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:22 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz