Ergebnis 1 bis 9 von 9

Thema: Crawler optimieren?

  1. #1
    Junior Avatar von Nightmare
    Registriert
    Apr 2015
    Beiträge
    25
    Gefällt mir!
    19
    Du gefällst: 8

    Crawler optimieren?

    Ich brauchen mal eine Idee von euch. Ich betreibe eine Seite, wo ich im Hintergrund einen Infocrawler laufen lasse. Nun kommt es vor, dass ich Infos zu einem Artikel brauche, wo sich Namen etwas unterscheiden.
    Beispiel, Artikel bei mir: Russisches Mädchen, Thriller von B.C. Schiller
    Beispiel bei Amazon: Russisches Mädchen - Thriller von B.C. Schiller
    Wie man sieht, ist es nur ein kleiner Unterschied, aber dieser kleine Unterschied, bewirkt, dass keine Infos dazu gefunden werden.
    Noch ein Beispiel, was aber auch genau zeigt, welche Probleme manchmal kleine Dinge verursachen können
    Titel bei mir: Die honigsüssen Hände von Marion Johanning
    Titel bei Amazon: Die honigsüßen Hände von Marion Johanning

    Wie kann ich mein php Script optimieren lassen, damit auch die Infos trotzdem gefunden werden?

  2. #2
    Anfänger Avatar von tasDev
    Registriert
    Jan 2016
    Beiträge
    14
    Gefällt mir!
    12
    Du gefällst: 8
    Wie bzw. mit welchen Funktionen führst du denn die Suche durch?


    Edit://
    Bspw. @ SQL Acc2002/XP - Suchfunktion, ss und ß gleichsetzen - MS-Office-Forum
    Geändert von tasDev (15.02.2016 um 15:55 Uhr)
    delicious (.)onion-cakes since 2k9 |#|XMPP [email protected] |#|BitMsg: BM-2cT1v2heya4xBsxU8RLE24eDFfzkwGgpn8 |#|Torchat: askme

  3. #3
    Junior
    Registriert
    Nov 2015
    Beiträge
    57
    Gefällt mir!
    8
    Du gefällst: 12
    es gibt sicherlich irgendwelche "match" Funktionen die den String vergleichen.
    Beispiel: similar_text("String1", "string 2", $percent);
    wenn übereinstimmung über 50% liegt, kann man das Ergebnis sicher nehmen.

    Zur not eben ein paar sonderfälle deklarieren wie "-", "ß" etc. ersetzen / entfernen und denn vergleichen.

  4. #4
    Ultimatives Spiderschwein Avatar von jbs
    Registriert
    Jun 2015
    Beiträge
    209
    Gefällt mir!
    151
    Du gefällst: 195
    Folgendes liegt noch aufm Speiseplan: Umlaute durch ae ue oe und ß durch ss ersetzen und die Anfrage erneut durchführen. Problem ist halt, dass eine Suche mittels Wildcards nicht möglich ist, sonst könnte man das einfach weglassen. Es wär sonst auch noch möglich, mal zu versuchen, die Umlaute und Sonderzeichen durch Leerzeichen zu ersetzen.

  5. #5
    Avatar von syrius
    Registriert
    Mar 2015
    Beiträge
    2,124
    Gefällt mir!
    1,234
    Du gefällst: 2,814
    Wie wärs denn einfach mit "if / else" ?? unschön, aber oftmals nötig!

  6. Diesen Mitgliedern gefällt dieser Beitrag:


  7. #6
    Senior
    Registriert
    Apr 2015
    Beiträge
    240
    Gefällt mir!
    137
    Du gefällst: 205
    Ich würde alle Sonderfälle rausstrippen.

    Also:

    Russisches Mädchen - Thriller von B.C. Schiller wird zu Lowercase("RuischesMdchenThrillervonBCSchiller")
    und
    Russisches Mädchen, Thriller von B.C. Schiller wird zu lowercase("RuischesMdchenThrillervonBCSchiller")
    Analog: DiehonigsenHndevonMarionJohanning

    Das ist leicht zu bewerkstelligen und nicht ressourcenintensiv.

    Z.B.: string "filtern": nur buchstaben - PHP Forum

  8. Diesen Mitgliedern gefällt dieser Beitrag:


  9. #7
    Junior
    Registriert
    Nov 2015
    Beiträge
    57
    Gefällt mir!
    8
    Du gefällst: 12
    Cappa hat n guten Lösungsweg!

  10. #8
    Senior
    Registriert
    Apr 2015
    Beiträge
    240
    Gefällt mir!
    137
    Du gefällst: 205
    Tu doch nicht so überrascht!

  11. Diesen Mitgliedern gefällt dieser Beitrag:


  12. #9
    Senior Avatar von maz
    Registriert
    Jan 2016
    Beiträge
    529
    Gefällt mir!
    206
    Du gefällst: 428
    An sich ist der Lösungsansatz ja nicht so verkehrt, das Prblem dürfte aber sein, dass der entsprechende Amazon Artikel gar nicht gefunden wird. (So verstehe ich zumindest das Ausgangsproblem). Und dazu würd ich einfach die Google API nutzen, da Google sehr schlaue logarithmen für genau dieses Problem im Einsatz hat und vermutlich niemand auch nur was ähnlich gutes selbst schreiben kann.

    Der Code würde in etwa so aussehen:
    <?php

    $search = 'Russisches Mädchen, Thriller von B.C. Schiller';
    $sites = 'amazon.de';
    $url = "http://ajax.googleapis.com/ajax/services/search/web?v=1.0&q=site:".$sites."%20".urlencode($search) ;

    $body = file_get_contents($url);
    $json = json_decode($body);

    for($x=0;$x<count($json->responseData->results);$x++){
    echo "<b>Result ".($x+1)."</b>";
    echo "<br>URL: ";
    echo $json->responseData->results[$x]->url;
    echo "<br>Title: ";
    echo $json->responseData->results[$x]->title;
    echo "<br><br>";
    }
    ?>
    Damit findest du bei Amazon das gewünschte sicher schon mal. Dann musst du nur noch den Amazon Titel auslesen
    Danach nimmst du entweder similar_text() oder was ich besser finde in deinem Fall levenshtein() um den Titel mit deinem abzugleichen. levenshtein() gibt dir die Anzahl Zeichen die anders sind als Int zurück. Dann liest du noch die geammtlänge des Titels aus und kombinierst das ganze schlau, zB dass erst ab einer Länge von 5 ein Fehler auftreten darf und ab einer von 10, 2 Fehler oder irgend so was. Deine beiden Beispiele liefern zB beide eine 2 als Rückgabewert. Ach ja und wie bereits vorgeschlagen das ganze noch mit einem strtolower() verfeinern.

    EDIT: Evt ist der Google Ansatz völlig unnötig, vermutlich machst du die Suche ja schon über die Amazon API und die ist kaum schlechter.
    Geändert von maz (18.02.2016 um 02:11 Uhr)

Ähnliche Themen

  1. Rclone / Plex optimieren
    Von ChAiN SaW im Forum Technik / Hardware & Software
    Antworten: 23
    Letzter Beitrag: 11.03.2023, 13:16
  2. Crawler Probleme
    Von schneewittchen im Forum IntelligeN
    Antworten: 31
    Letzter Beitrag: 25.10.2021, 21:08
  3. Filmwiedergabe optimieren (NAS, Apple TV)
    Von Anteil im Forum Technik / Hardware & Software
    Antworten: 14
    Letzter Beitrag: 30.06.2021, 07:20
  4. (Suche) - Webseite: Script Bugs entfernen und optimieren (PHP?)
    Von Blackbird im Forum Entwickler / IT-Techniker
    Antworten: 2
    Letzter Beitrag: 02.12.2018, 19:07
  5. (PHP) - Crawler optimieren (Schneller!?)
    Von Uranjitsu im Forum Entwicklung / Programmierung
    Antworten: 18
    Letzter Beitrag: 23.08.2018, 13:20

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  
SzeneBox.org... im Mittelpunkt der Szene!
© since 2015 szeneBOX.org - All Rights Reserved
Domains: www.szenebox.org