![]() |
Unterseiten einer Homepage ermitteln
Hi,
wie kann ich alle Unterseiten einer Homepage ermitteln? Das heißt, das ich keine externen Verlinkungen mit aufsammeln möchte. Unterseiten können auch relative Pfade enthalten. |
AW: Unterseiten einer Homepage ermitteln
Wie hast du es bisher versucht?
|
AW: Unterseiten einer Homepage ermitteln
Allen Links folgen und wenn ein Link eine fremde Domain beinhaltet, dann gehört die Seite nicht zur Seite.
|
AW: Unterseiten einer Homepage ermitteln
Ich hätte es jetzt umständlich gemacht mit:
1. idhttp.get 2. per "Pos", "Copy" alle Links gesucht 3. aussortieren der links die auf eine andere homepage führen 4. die relativen Pfade umgeschrieben. Ich dachte nur es geht vielleicht einfacher. |
AW: Unterseiten einer Homepage ermitteln
ja, einfacher geht es mit einem Sitemap, vor allem das, was von Google abgefragt wird. Nur gibt es keine definierte Stelle, wo das Sitemap liegt.
Bernhard PS: Allen Links folgen ist nun einfach die einzige Lösung, wenn man nicht über "Hintertüren" an mehr Informationen kommt. |
AW: Unterseiten einer Homepage ermitteln
Naja, ich kann nicht davon ausgehen, das die Seiten alle eine Sitemap besitzen und diese alle in einen einhetlichen Format angegeben sind.
Da existeren ja doch ei paar mehr Varianten. |
AW: Unterseiten einer Homepage ermitteln
ja genau deswegen wirst du nicht drum herum kommen, allen Links zu folgen.
Bernhard |
AW: Unterseiten einer Homepage ermitteln
Ok, dann mach ich mich mal daran.
Danke |
AW: Unterseiten einer Homepage ermitteln
vielleich hilft Dir der Codefetzen aus unserer Codebase?
Delphi-Quellcode:
procedure TCrawlingThread.WBDocumentComplete(Sender: TObject ;const pDisp:IDispatch;var URL: OLEVariant);
var i:Integer; ElementCollection: IHTMLElementCollection; HtmlElement: IHTMLElement; AnchorString: string; sl:TStringList; begin try if Assigned((FWB.Document as IHTMLDocument2).body) then begin sl:=TStringList.Create; try sl.Text := ((FWB.Document as IHTMLDocument2).body as IHTMLBodyElement).createTextRange.text; sl.SaveToFile(IncludeTrailingBackSlash(FFilePath) + FGuid); finally sl.Free; end; end; ElementCollection:= (FWB.Document as IHTMLDocument2).all; For i := 0 To ElementCollection.length - 1 do begin HtmlElement := ElementCollection.item(I, '') as IHTMLElement; if HTMLElement.tagName = 'A' then begin AnchorString := (HtmlElement as IHTMLAnchorElement).href; FCollectedLinks.Add(AnsiLowerCase(AnchorString)); end; end; FCanTerminate := true; except on E:Exception do FError := E.Message; end; end; |
AW: Unterseiten einer Homepage ermitteln
Lustig wird's dann bei Flash-Seiten oder welche, die den Content per JavaScript nachladen und diesen auch nur per JS austauschen.
|
AW: Unterseiten einer Homepage ermitteln
Schau mal hier:
![]() Der Delphi Sourcecode ist zwar etwas verkorkst, aber die Erklärungen zum "Spidering Algorithm" sind ganz nützlich. |
AW: Unterseiten einer Homepage ermitteln
Erhalte soweit alle Links, aber wie kann ich bitte erkennen ob es Links sind oder Bilder oder oder ... ?
|
AW: Unterseiten einer Homepage ermitteln
Gucken, ob es auf .html oder .jpg etc. endet.
|
AW: Unterseiten einer Homepage ermitteln
Zitat:
Liebe Grüße, Valle |
AW: Unterseiten einer Homepage ermitteln
Ich wollte gerade sagen, nicht es kann ja html, htm, php, phpX usw. ändern.
Wie genau prüfe ich den Content Header? |
AW: Unterseiten einer Homepage ermitteln
Also mit
Delphi-Quellcode:
erhalte ich folgendes
IdHTTP.Head(FHomepage);
IdHTTP.Response.RawHeaders.Text; Zitat:
Edit: ah ich seh schon ganz unten :) |
AW: Unterseiten einer Homepage ermitteln
Leider zeigt mir der Content Typ auch bei "css" Dateien "Text/Html" an.
Muss ich nun doch extra die Endung prüfen? |
AW: Unterseiten einer Homepage ermitteln
Er zeigt bei CSS "text/html" an? :gruebel:
Kannst du mir den Link mal (notfalls per PN) schicken? Liebe Grüße, Valle |
AW: Unterseiten einer Homepage ermitteln
Wenn die CSS-Datei z.B. per PHP-Script generiert/ausgeliefert wird und der Programmierer wiedermal vergessen hat den ContentType ordentlich zu setzen, dann kann sowas schonmal bei rauskommen.
PS: Das Optimalste und das, für alle Seiten, Beste wäre, wenn die Webseite direkt alle nötigen Informationen bereitstellt und man somit nix mehr großartig pauslesen und parsen muß. Wenn es sich immer un die selbe Webseite handelt, dann könnte man ja mal den Webmaster ganz lieb fragen. :angel: |
AW: Unterseiten einer Homepage ermitteln
Hallo,
wir haben eben festgestellt, dass der Server bei der CSS-Seite alles richtig macht. Es muss am Delphi-Code liegen. Indy-Experten hier? :thumb: Liebe Grüße, Valle |
AW: Unterseiten einer Homepage ermitteln
Hm, sehr komisch nun funktioniert es auf einmal korrekt.
Und dabei habe ich nur alles von der probe unit in die wirkliche Programm Unit implementiert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 07:24 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