![]() |
Re: Link aus Quelltext raussuchen und auflisten
Zitat:
|
Re: Link aus Quelltext raussuchen und auflisten
Sorry mit dem ExtractLinks() kann ich nix anfangen...
ich hab das hier mal gestestet mit google.de
Delphi-Quellcode:
und raus kommt das hier:
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]))));
Delphi-Quellcode:
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...
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" 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:
also wie kann ich das umgehen, dass neben dem Link auch noch anderes drinsteht?
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 |
Re: Link aus Quelltext raussuchen und auflisten
Kannst du mal die eigentlichen Daten posten?
|
Re: Link aus Quelltext raussuchen und auflisten
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. |
Re: Link aus Quelltext raussuchen und auflisten
also nochmal neu!
ich habe bis jetz:
Delphi-Quellcode:
es kommt das raus:
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.
Delphi-Quellcode:
was ich jetzt noch wissen muss, ist wie ich den überflüssigen schriebs entfernen kann...
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 @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) |
Re: Link aus Quelltext raussuchen und auflisten
Nein, ich wollte eigentlich die Daten haben die du LIEST. Die Rohdaten also - nicht den Quelltext!
|
Re: Link aus Quelltext raussuchen und auflisten
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 »[/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>©2008 Google</font></p></center></body></html> |
Re: Link aus Quelltext raussuchen und auflisten
Delphi-Quellcode:
Das ist nur Quick and dirty. Insbesondere an der Markierung waeren noch andere Protokolle zu pruefen.
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))='http' then //<<<<<<<<!!!!!!!!!! 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; Auch der Name der Zieldatei ist einfach nur so... Aber grundsaetzlich sollte klar werden was Sache ist. |
Re: Link aus Quelltext raussuchen und auflisten
In seinem Quelltext scheinen auch URLs zu sein, die nicht von Hochkommata eingeschlossen sind
Zitat:
Ich sage ja, nach diesem kopierehier kopiereda-Schema wird das nichts. Jedenfalls nichts zuverlässiges. |
Re: Link aus Quelltext raussuchen und auflisten
@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... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:25 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz