Geschafft!

Hinweis

Fehler

Session expiration Your session is going to expireClick here to extend

Budget:

1.500 - 3.000

Geposted am

30.01.15 12:37

Kunde

Hab***

Die Angebotsphase ist beendet

Schreiben Sie ein ähnliches Projekt aus und erhalten Sie Angebote von Freelancern. Unverbindlich. Kostenlos. Schnell.

Jetzt ähnliches Projekt einstellen

Beschreibung:

Deutssprachige Version weiter unten.

 

Dear Twago Community,

 

For a software solution under development, we need a webcrawler.Apache-Nutch running on an AWS-EMR cluster is our current choice if the following requirements that will be part of the job, can be fulfilled:

  1. Crawling all pages but only for specified domains.
  2. Filtering of the domains by config that needs to be changed or by frequent querys on a MySQL-database (max. 1 per Minute) – preferred
  3. Parsing HTML, XML, CSS-files for URLs of files with definable file-extension (globaly definable, not per domain)
  4. Parsing HTML, XML, CSS-files for URLs of files by definable tags (f.e. <img src=””>)(globaly definable, not per domain)These parsed URLs from bullet 3 & 4 will be called “other files” in the further requirement-description.
  5. Collecting all RSS-feed-urls, CSS-files and the “other files” from the HTML code.The domain-limitation of bullet 1 should not be considered (f.e. because the RSS-feeds, CSS-files or f.e. images may be placed on a subdomain or an CDN-server with a different domain)
  6. Parsing all CSS-Files for collecting all “other files” (f.e. images).As in Bullet 5, domain-limitations of bullet 1 should not be considered.
  7. Storing all URLs (Sites, CSS-Files, RSS-Feed-Urls and “other files”) to an external database (MySQL)
  8. Logging the file-relations in the external Database in a second Table (MySQL)(which site / CSS-file links to which site / RSS-feed / CSS-file / “other file”)
  9. Downloading the “other files” and storing them into a separated S3-bucket.The filename used for storing has to follow the following naming convention:{ID1}-{imageURL-ID}.{fileExtension}{imageURL-ID} is the unique ID, the “other file” got assigned in the database-table of bullet 7.{ID1} comes from a second column of the URLs db-entry of bullet 7.
  10. Continuous check of sites / CSS-file / “other files” (not RSS-Feeds) if they have been changed or removed.All technics that are available to avoid unnecessary downloads shall be used.
    1. On change: recrawl, reparse and update db-entry in bullet 7 (change-date) as well as relations (bullet 8).
    2. On remove: update db-entry in bullet 7 (removal-date)
  11. Indexing > 100mio sites must be possible in a performant way.

Please send us a list of references where you worked with Apache-Nutch and AWS-EMR.Best would be a project that combines both.

Please also send us an assessment, what scan-rate may be achieved with which AWS-machines.

If Apache-nutch is not the best choice you may feel free to place recommendations.

Please also provide time estimates for each point of the above requirements instead of only sending us a cumulated offer.

If you have any questions, feel free to contact us.

 

----

 

Sehr geehrte Twago-Community,

 

Für eine Softwarelösung in Entwicklung benötigen wir einen Webcrawler.

Apache-Nutch aufgesetzt auf einem AWS-EMR Cluster erscheint uns aktuell als gute Wahl wenn folgende Anforderungen, welche auch Teil einer Beauftragung sein würden, erfüllt werden können:

  1. Crawlen aller Seiten / Unterseiten, jedoch nur auf festgelegten Domains
  2. Filterung der Domains anhand der Konfiguration welche manuell geändert werden muss oder durch regelmäßige Datenbankabfragen (maximal eine Abfrage pro Minute - Datenbank wäre MySQL) – letztere Variante wird bevorzugt
  3. Parsen von HTML, XML & CSS-Dateien auf URLs von weiteren Dateien mit festlegbaren Dateiendungen (global, nicht pro Domain).
  4. Parsen von HTML, XML & CSS-Dateien auf URLs von weiteren Dateien über definierbare Tags (z.B. <img src=““>). (global, nicht pro Domain)Diese geparsten URLs aus Punkt 3 & 4 werden fortan als „weitere Dateien“ in den folgenden Anforderungen bezeichnet.
  5. Parsen der Seiten / Unterseiten und zusammentragen aller RSS-Feeds, CSS-Dateien und aller „weiteren Dateien“.Die Domainlimitierung aus Punkt 1 soll hierbei keine Anwendung finden (beispielsweise weil ein RSS-Feed, eine CSS-Datei oder die „weiteren Dateien“ wie beispielsweise ein Bild auf einer Subdomain oder aufgrund eines externen CDN-Servers sogar auf einer komplett anderen Domain liegen könnte.)
  6. Parsen aller CSS-Dateien und zusammentragen der enthaltenen „weiteren Dateien“ (Beispielsweise Bilder).Die Domainlimitierung aus Punkt eins soll hierbei wie auch schon bei Punkt 5 keine Anwendung finden.
  7. Speichern aller URLs (Seiten, CSS-Dateien, RSS-Feeds, „weiteren Dateien“) in einer externen Datenbank (MySQL)
  8. Speichern aller URL-Relationen in einer zweiten Tabelle der externen Datenbank (MySQL)(Welche Seite / CSS-Datei verweist auf welche Seite / RSS-Feed / CSS-Datei / „weiteren Datei“)
  9. Herunterladen und Speichern der „weiteren Dateien“ in einem separaten AWS-S3-Bucket.Der Dateiname welche für das Speichern verwendet wird soll folgender Namensgebung folgen:{ID1}-{imageURL-ID}.{fileExtension}{imageURL-ID} ist eine eindeutige ID welche die „weitere Datei“ durch ihren Datenbankeintrag aus Punkt 7 zugewiesen bekommen hat.{ID1} ergibt sich durch eine zweite Spalte des selbigen Datenbankeintrages aus Punkt 7.
  10. Fortlaufende Überprüfung der Seiten / CSS-Dateien / „weiteren Dateien“ (nicht der RSS-Feeds) ob diese verändert oder entfernt wurden.Alle verfügbaren Techniken welche ein unnötiges herunterladen vermeiden können, sollen eingesetzt werden.
    1. Bei Änderung: erneute crawlen, parsen und update des Datenbankeintrages aus Punkt 7 (Datumsspalte „geändert am“).Ebenfalls Aktualisieren der URL Relationen aus Punkt 8.
    2. Bei Löschung: Aktualisieren des Datenbankeintrags aus Punkt 7 (Datumsspalte „gelöscht am“)
  11. Indexierung von > 100Mio. Seiten muss performant möglich sein.

Bitte senden Sie uns eine Liste ihrer Referenzen wo sie mit Apache-Nutch und AWS-EMR gearbeitet haben.Bestenfalls wäre eine Referenz von einem Projekt des beides kombiniert.

Bitte lassen Sie uns ebenfalls eine Einschätzung zu kommen, welches Scan-Rate sich mit welcher AWS-Maschine(n) erreichen lässt.

Wenn Apache-Nutch nicht die beste Wahl ist können Sie uns gerne andere Vorschläge unterbreiten.

Bitte geben Sie für jeden der oben genannten Punkte eine separate Zeiteinschätzungen ab und stelle uns ein ausschließlich kumuliertes Angebot zukommen zu lassen.

Sollten Sie Fragen haben können Sie uns gerne jederzeit kontaktieren.

Lesen Sie die Anforderungen - Angebote welche beim ersten Anschreiben nicht im entferntesten auf die Anforderung eingehen werden per sofort abgelehnt und als "Uninteressant" vermerkt.

 

Read the requirements before contacting us with irrelevant stuff.

Offers that have nothing to do with the requirements above will be declined without further notice and marked as "irrelevant".