Citat:
Ursprungligen postat av
FutureProof
Först bör du fråga dig själv: Varför lagrar du datan i Excel-blad?
Jag har erfarenhet av att behöva sammanställa datakällor i olika format, bland annat Excel, CSV, SQL och Feather. Det överlägset långsammast formatet för att läsa in data i minnet (för att sedan kunna göra vad du vill med det) är Excel. I och med att du skriver att det är ett webscraping-projekt så antar jag att det är du själv som scrapar datat, och har valt att spara det i Excel. Inget fel med det om man är i startgroparna, men att bara byta till CSV skulle göra att du kapar dina processtider dramatiskt.
Som tidigare skribent nämner så skulle jag också kollat på pandas. Pandas har fördefinierade funktioner för att läsa samtliga av de format som jag listade (ja, inkl. SQL).
Vill du lära dig SQL (vilket, precis som du säger, kan vara bra inför framtida projekt) så skulle jag råda dig att börja med SQLite. Det ger dig möjlighet att använda SQL utan att först behöva sätta upp en serverprocess, då du istället skriver data till en enkel fil.
Lycka till!
Filerna jag jobbar mot är redan i XLSX-format, och det är att föredra om de fortsätter att vara i något lika brett format som kunden, som jobbar med telefonförsäljning och hanterar kunder i dokumentet, kan hantera med alla funktionerna i, så det är enklast att ta samma fil in som ut.
Sedan jobbar jag inte mot något API så att det går i ett dundrande tempo heller, det tar typ en och en halv timme att jobba genom 2000 rader p.g.a. laddtider på hemsidor, och att jag måste ha en liten aning sleep för att inte bli IP-blockad efter några enstaka requests.
Ja, jag använder roterande proxy, men av någon orsak så byts bara IP:n ut varje gång jag startar om selenium, och det tar en evighet om jag skulle göra det för varje rad i dokumentet. Så det ser ut som det gör.
Det är ändå sådana här saker som inte gör något om det tar tre dagar för dem att bli färdiga, så att ett dokument tar någon timme medans jag sitter och spelar gör ingenting.
Tiden det tar att hantera excelfilerna är extremt marginell mot allt annat som händer, annars hade jag sett över det tidigare.
Sparar inte i varje entry heller, för närvarande drar jag ner 30 rader data innan jag sparar filen, då jag ibland stöter på oväntade errors utan vidare förklaring. RAM-diskar projektet också, då det minskar spartiden en aning och inte sliter på SSD:n.