Giter VIP home page Giter VIP logo

ws-domainvalidator's Issues

Option `allowSubdomains` implementieren

Um die Crawler-Funktionalität direkt zu integrieren wäre eine Option allowSubdomains wünschenswert.

Sofern allowSubdomains: false gesetzt wird, sollen nur crawledUrls der angegebenen domain zurückgeliefert werden. false kann hierbei auch gerne der Standard-Wert sein.

Externe URLs sollten generell nicht zurückgeliefert werden.

Option allowSubdomains fehlerhaft

Wird allowSubdomains: false gesetzt, so liefert der Crawler keine crawledUrls mehr aus.

Ziel der Option soll es ja sein, bspw. bei Übergabe der Domain siwecos.de lediglich Ergebnisse für siwecos.de und nicht für bspw. blog.siwecos.de oder www.siwecos.de zu liefern.

Momentan wird jedoch kein Crawling mehr ausgeführt.

Timeout für Callbacks fehlt

Momentan gibt es anscheinend kein Timeout für die Callback Routine:

Ist ein Port bzw. die Adresse nicht erreichbar, so bleibt der Thread blockiert.

.space TLD wird nicht aufgelöst

Wir haben eine Domain, welche die TLD .space nutzt.

Diese wird nicht aufgelöst und als syntaktisch inkorrekt markiert:

{
   "name":"Validator",
   "hasError":false,
   "domain":null,
   "originalUrl":"http://example.space",
   "urlToScan":null,
   "urlIsSyntacticalOk":false,
   "dnsResolves":null,
   "httpCouldConnect":null,
   "httpStatusCode":null,
   "httpRedirect":null,
   "mailServerDomainList":null,
   "crawledUrls":null
}

Callback Implementieren

Die Option callbackurls wird benötigt, um den Validator / Crawler in regelmäßigen Abständen erneut anstoßen zu können um bspw. die Liste der MX-Domains aber auch der crawledUrls zu aktualisieren.

Entsprechend soll dann eine Queue abgearbeitet werden und das Ergebnis an die definierten URLs gesendet werden.

Anpassung Log-Level

Momentan werden alle Debug-Logs mit ausgegeben.

Bitte Log-Level auf mind. Info anheben, ggf. mehr - soweit sinnvoll.

Detektion Seite nicht erreichbar

Beim Starten des Validators/Crawlers mit einer nicht (mehr) existierenden Domain bekomme ich folgende Antwort:

{
   "name":"Validator",
   "hasError":false,
   "domain":"not-existingfakjsdfjka.com",
   "originalUrl":"http://not-existingfakjsdfjka.com",
   "urlToScan":"http://not-existingfakjsdfjka.com",
   "urlIsSyntacticalOk":true,
   "dnsResolves":false,
   "httpRedirect":null,
   "mailServerDomainList":[

   ],
   "crawledUrls":[

   ]
}

Ich erhalte die Felder httpRedirect: null und dnsResolves: false, jedoch auch hasError: false.

Fragen

  1. Müsste das hasError nicht true sein?
  2. originalUrl: Was besagt dieser Wert? Es scheint, als wäre an die Domain einfach das http://-Schema angehängt?
  3. Für SIWECOS ist ja hauptsächlich der Webauftritt relevant. Wie kann man erkennen, ob die Seite noch erreichbar / online ist? Dies ist relevant für SIWECOS/siwecos-business-layer#138

Option `maxAmountUrlsToCrawl` implementieren

Eine optionale Begrenzung der Anzahl der zurückgelieferten gecrawlten URLs wird benötigt.

Wird bspw. maxAmountUrlsToCrawl: 10 gesendet, sollen maximal 10 URLs zurückgeliefert werden.

Hierbei werden nicht die 10 ersten URLs gewünscht, sondern die 10 "priorisiertesten".
Siehe hierzu auch weitere Kommunikation.

Callback optional machen oder Input-Validierung

Wird kein valider callbackurls-Parameter beim Request mitgegeben, so wird der Validator den Request mit HTTP 200 und Success annehmen, ihn abarbeiten und dann ene java.lang.NullPointerException werfen, da das Feld fehlt.

Entweder ohne callbackurls-Parameter direkt die Ergebnisse zurückliefern wie in der früheren Version oder entsprechende Fehlermeldung beim Start senden.

DomainValidator durch Domain in 100%-Auslastungsschleife

Bei einer Domain tritt folgendes Verhalten auf:

  1. Der StartRequest wird angenommen, es wird Success zurückgeliefert
  2. Der DomainValidator belegt einen Core zu 100% und kommt aus dieser Schleife nicht mehr heraus. Lediglich manuelles abschießen behebt den Fehler.

Betroffene Domain siehe Slack

Domain wird nicht bearbeitet

Bei einer getesten Domain tritt folgendes Verhalten auf:

  1. Start-Request wird angenommen, es wird Success geliefert
  2. Es erfolgt keine Bearbeitung durch den DomainValidator, keine Response wird geschickt, Rechnerauslastung bleibt konstant

Betroffene Domain siehe Slack.

Fehlender "domain" Parameter

Bei einigen Domains, wird der Parameter domain nicht übermittelt, dieser wird aber zwingend benötigt.

Der Parameter domain soll genau der sein, der auch beim Start-Request übermittelt wird.

Bitte dementsprechend ändern.

urlToScan wird nicht benötigt, wenn die URL nicht per HTTP erreichbar ist.
(momentan wird ein urlToScan konstruiert, der domain-Parameter aber mit null zurückgegeben)


Beispiel-Domain Liste siehe Slack: Liste 1

Crawling: Unterschiedliche Pfade bevorzugen

Es wäre praktisch, wenn der Scanner die crawledUrls so zurückgibt, dass die Pfade am unterschiedlichsten sind.

Sprich:
Anstatt /cms und /cms/wordpress und /cms/contao darauf konzentrieren, dass die Liste nach Unterschiedlichkeit geordnet wird.

Hintergrund:
Aktuell werden wir wahrscheinlich 10 weitere URLs crawlen.
Es macht mehr Sinn dann /blog und /shop zu erhalten, anstatt viele ähnliche Unterseiten.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.