Data Mining-Software

496
mpen

Ich möchte einige Daten wie diese http://www.newcardealers.ca/de/Dealers/List-A.aspx sammeln

Geben Sie den Namen, die Adresse, die Telefonnummer, die E-Mail-Adresse usw. in eine Datenbank ein. Gibt es eine Software, die ich verwenden kann, um eine Webseite zu erstellen, lassen Sie mich einige reguläre Ausdrücke oder etwas angeben und dann alle übereinstimmenden Daten in einer CSV oder in einem Format ausspucken, das leicht in eine Datenbank eingefügt werden kann?

1
Wie wäre es mit wget und grep zB entweder in einem Schritt oder wget auf eine Datei umleiten, dann grep die Datei. barlop vor 7 Jahren 0

2 Antworten auf die Frage

2
mpen

FYI, mozenda works really well and is really easy to use... but they only have a free trial version, and their marketing strategy is really shady.

Das Sammeln von Adressen und Kontakten durch Crawlen ist eine zwielichtige Angelegenheit. Echte Kunden-Lieferanten-Beziehungen beinhalten normalerweise den Austausch durch private Transaktionen und EDI. hyperslug vor 13 Jahren 1
@hyperslug: Punkt genommen. Das Ernten oder Web-Scraping ist im Allgemeinen zwielichtig, muss aber nicht unbedingt sein. Dasselbe gilt für Torrents (sind nicht unbedingt illegal). Daher glaube ich nicht, dass sich die Software als solche darstellen muss! Wie auch immer ... das ist nicht wirklich der Punkt. Mozenda funktioniert nur online und ist nicht kostenlos. Sehr nah an dem, was ich will, aber nicht ganz :) mpen vor 13 Jahren 0
1
hyperslug

Eine Möglichkeit, dies zu tun, besteht darin, Ihren eigenen Scraper selbst zu schreiben. Diese

using HtmlAgilityPack;  ...  HtmlDocument doc = new HtmlWeb().Load("http://www.newcardealers.ca/en/Dealers/List-A.aspx"); foreach (HtmlNode td in doc.DocumentNode.SelectNodes("//td[@width='268']")) { Console.Write(td.SelectSingleNode("span[@class='BodyTextBold']").InnerText); Console.WriteLine(td.SelectSingleNode("span[@class='BodyText']").InnerText.Replace("\t\t\t\t", "\r\n")); } 

produziert dies

A.M. FORD SALES LIMITED 2795 Highway Drive Trail, BC V1R2T1 Telephone : 250 364-0202 http://www.amford.com amford@amford.com  ABBOTSFORD CHRYSLER LTD. 30285 Automall Drive Abbotsford, BC V2T5M1 Telephone : 604 857-8888 http://www.abbotsfordchrysler.com paul@abbotsfordchrysler.com  ACURA OF LANGLEY 19447 Langley ByPass Surrey, BC V3S6K1 Telephone : 604 539-2111 http://www.acuraoflangley.com acura_info@acuraoflangley.com  ... 

Nicht perfekt, aber Sie sehen, wohin das führt.

Sie sind sich nicht sicher, wie eine Standalone-Anwendung das automatisch analysieren würde.

Am Ende habe ich ziemlich genau das gemacht ... C # / HtmlAgilityPack. Eine clevere Standalone-App kann dies mit wenigen Klicks erledigen (klicken Sie auf die gewünschten Elemente und berechnen Sie die xpath-Anweisung, die die anderen ermittelt). mpen vor 13 Jahren 0
Hm, ich verstehe. Ich nahm an, Sie suchten nach etwas vollständig Automatisiertem, was meiner Meinung nach sehr schwierig sein würde. Die semantische Struktur der verlinkten Seite war sehr uninteressant und stellt leider einen typischen Fall dar. Vielleicht mit etwas Schulung durch den Benutzer, z. B. das Auswählen eines Musters, das übereinstimmt, wie Sie es vorschlagen. Klingt immer noch schwierig, was Code anbelangt, obwohl Marketing-Verantwortliche für eine solche App teuer wären ... hyperslug vor 13 Jahren 0
Nun ... Mozenda lief auf dieser Testseite überraschend gut. Es hat alles perfekt herausgearbeitet und sogar zur nächsten Seite navigiert, obwohl es keine Schaltfläche "Weiter" gab und einige Buchstaben übersprungen wurden. Ich sage nicht, dass es zu leicht zu programmieren ist, aber es ist durchaus machbar. Ich bin nicht sicher, wie die semantische Struktur nicht intuitiv ist ... Die Daten sind recht einfach (visuell, sowieso) angeordnet. Wenn Sie sich auf fehlende Semantik im Code beziehen ... naja, das spielt kaum eine Rolle! Solange Sie * etwas * auswählen können, das das Set eindeutig identifiziert. mpen vor 13 Jahren 0
Sie hätten in Ihrer Antwort schreiben können, dass die Sprache, in der Sie geschrieben haben, c # war. barlop vor 7 Jahren 0