Ett verktyg för att söka efter flera böcker samtidigt på Bokbörsen – och hitta säljare som har flera av dem.
🔗 Live-demo: https://bokborsenmultisearch.grgta.xyz
Bokbörsen är mitt favoritställe för att köpa begagnade böcker. Tänk dig det som "Blocket för böcker" – tusentals titlar, tusentals säljare. Men här finns ett problem:
Frakten på Bokbörsen är fast per säljare. Om du beställer 10 böcker från 10 olika säljare blir frakten 10x högre än om du hittar en säljare som har alla böcker.
| Scenario | Pris |
|---|---|
| 10 böcker à 50 kr, 1 säljare | 500 kr + 79 kr frakt = 579 kr |
| 10 böcker à 50 kr, 10 säljare | 500 kr + (10 × 79 kr frakt) = 1290 kr |
Målet med projektet är att lösa detta problem: Att enkelt hitta säljare som har flera (eller alla) av de böcker du letar efter.
-
Ange flera söksträngar – t.ex.
"Sagan om ringen","Harry Potter","1984". -
Verktyget skapar sök-URL:er till Bokbörsen för varje sträng.
-
Varje sökresultat hämtas via ScraperAPI (eftersom Bokbörsen saknar publikt API).
-
HTML-svaren parsas med HtmlAgilityPack för att extrahera:
- Titlar
- Försäljare
- Pris
-
Resultatet sammanställs per säljare:
- Säljare som har fler av de efterfrågade böckerna listas först.
-
Allt presenteras i ett Blazor-gränssnitt.
├── Bokborsen_multi_search.sln
├── README.md
├── src
│ ├── BokborsenCommunicator # Klassbibliotek: scraping, parsing, logik
│ └── BokborsenMultiWeb # Blazor UI
│ └── Components
└── test
├── BokBorsenMultiWeb.Test
└── BokborsenMultiWeb.TestsCreationToolsBokborsenCommunicator: Ansvarar för att kontakta Bokbörsen (via ScraperAPI) och tolka HTML.BokborsenMultiWeb: Blazor frontend som presenterar resultaten för användaren.
För att hålla svarstiderna rimliga:
-
Endast de första sidorna av varje sökresultat hämtas.
-
Resultat cachelagras i upp till 24 timmar.
- Detta minskar antalet API-anrop vid upprepade sökningar.
- Ingen persistent databas används.
En testsvit finns, men är inte uppdaterad för den senaste versionen med ScraperAPI. Testprojektet behöver uppdateras för att mocka API-respons eller köra integrationstester mot "falska" HTML-sidor.
Projektet skapades sommaren 2024 för att lösa ett konkret problem jag själv hade – att hitta flera böcker från samma säljare på Bokbörsen. Den manuella processen var frustrerande och ineffektiv, särskilt när antalet böcker på inköpslistan ökade.
Efter att Bokbörsen gjorde en ändring som blockerade enklare scraping, anpassade jag projektet till att använda ScraperAPI.