Vor einigen Tagen entschied ich mich dazu, die Erfassungsfunktionen von CSV in SQLite zu wechseln.
Hierbei hat die entsprechende Datenbankdatei folgende Struktur (Einrichtungsprozedur):
procedure TForm1.LocationsMain1Click(Sender: TObject);
begin
with sql_befehle do
begin
clear;
lines.Add('drop table if exists locations;');
lines.Add('CREATE TABLE `locations` (');
lines.Add(' `id` integer primary key AUTOINCREMENT,');
lines.Add('`url` varchar(400),');
lines.Add('`tag` varchar(800),');
lines.Add('`likes` varchar(400),');
lines.Add('`comments` varchar(400),');
lines.Add('`erstellzeit` varchar(400),');
lines.Add('`post_id` varchar(1600),');
lines.Add('`username` varchar(400),');
lines.Add('`location` varchar(400),');
lines.Add('`filter` varchar(400),');
lines.Add('`pruefzeit` varchar(400)');
lines.Add(');');
lines.Add('vacuum;');
end;
fdquery3.ExecSQL(sql_befehle.text);
end;
Mit Datenbankwechsel wurde der Scraper so optimiert, dass an einem typischen Arbeitstag zwischen 1200 und 4500 Locations zu max. 1500 Einträge erfasst werden können. Erste Testläufe mit dem Raum Paris / Frankreich ergaben eine Ausbeute von ~400.000 Einträgen mit Aktivitäten von ~200.000 Accounts (Unique!).