LC.Ebookpoint.Parser
0.1.0
dotnet add package LC.Ebookpoint.Parser --version 0.1.0
NuGet\Install-Package LC.Ebookpoint.Parser -Version 0.1.0
<PackageReference Include="LC.Ebookpoint.Parser" Version="0.1.0" />
<PackageVersion Include="LC.Ebookpoint.Parser" Version="0.1.0" />
<PackageReference Include="LC.Ebookpoint.Parser" />
paket add LC.Ebookpoint.Parser --version 0.1.0
#r "nuget: LC.Ebookpoint.Parser, 0.1.0"
#:package LC.Ebookpoint.Parser@0.1.0
#addin nuget:?package=LC.Ebookpoint.Parser&version=0.1.0
#tool nuget:?package=LC.Ebookpoint.Parser&version=0.1.0
LC.Ebookpoint.Parser
Biblioteka .NET (netstandard2.0) do parsowania stron produktowych z serwisu ebookpoint.pl. Nie wykonuje żadnych zapytań HTTP — przyjmuje gotowy kod HTML strony produktu i zwraca dane wariantu audiobook.
Ebookpoint sprzedaje książki jako grupę wariantów formatu (ebook, audiobook, ...) pod jednym adresem URL. Ten parser wybiera z takiej strony wyłącznie wariant audiobook i zwraca go jako Audiobook.
Instalacja
dotnet add package LC.Ebookpoint.Parser
Użycie
using LC.Ebookpoint.Parser;
var html = await httpClient.GetStringAsync("https://ebookpoint.pl/ksiazki/czlowiek-nietoperz-harry-hole-tom-1-jo-nesbo,e_8009.htm");
var parser = new EbookpointAudiobookParser();
var audiobook = parser.Parse(html);
Console.WriteLine(audiobook.Title); // "Człowiek nietoperz. Harry Hole. Tom 1"
Console.WriteLine(audiobook.Authors[0]); // "Jo Nesbo"
Console.WriteLine(audiobook.Narrator); // "Mariusz Bonaszewski"
Console.WriteLine(audiobook.Duration); // 13:12:00
Console.WriteLine(audiobook.Price); // 27.22
Zwracane dane (Audiobook)
| Właściwość | Typ | Opis |
|---|---|---|
Title |
string |
Tytuł |
Authors |
IReadOnlyList<string> |
Autorzy książki |
Narrator |
string? |
Lektor nagrania |
Publisher |
string? |
Wydawca / marka |
Description |
string? |
Opis produktu |
CoverImageUrl |
string? |
URL okładki wariantu audiobook |
Duration |
TimeSpan? |
Czas nagrania |
RatingValue |
double? |
Średnia ocena produktu |
RatingCount |
int? |
Liczba ocen |
Price |
decimal? |
Cena wariantu audiobook |
Currency |
string? |
Waluta ceny |
Sku |
string? |
SKU wariantu audiobook |
Gtin13 |
string? |
Kod GTIN-13 (EAN) wariantu audiobook |
Url |
string? |
Adres URL strony produktu z zakotwiczeniem wariantu |
Narrator i Duration bywają null — nie każda strona ma wypełnione oba pola w widocznych szczegółach.
Jak to działa
Strona produktu ebookpoint.pl osadza dane w bloku <script type="application/ld+json"> zgodnym ze schema.org (ProductGroup z listą hasVariant). Stamtąd pochodzi tytuł, wydawca, ocena oraz dane wariantu audiobook (cena, SKU, GTIN, okładka) — wariant wybierany jest po nazwie kończącej się na "- audiobook". Autor nie występuje w JSON-LD jako osobne pole, więc jest wyciągany z tekstu opisu (autor: ...). Lektor i czas nagrania nie są dostępne w JSON-LD w ogóle — pochodzą z widocznej sekcji szczegółów HTML (<dt>Czyta:</dt>, <dt>Czas nagrania:</dt>).
Jeśli struktura strony się zmieni na tyle, że brak będzie bloku JSON-LD z ProductGroup, albo strona nie oferuje wariantu audiobook, Parse rzuci EbookpointParseException.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net5.0 was computed. net5.0-windows was computed. net6.0 was computed. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
| .NET Core | netcoreapp2.0 was computed. netcoreapp2.1 was computed. netcoreapp2.2 was computed. netcoreapp3.0 was computed. netcoreapp3.1 was computed. |
| .NET Standard | netstandard2.0 is compatible. netstandard2.1 was computed. |
| .NET Framework | net461 was computed. net462 was computed. net463 was computed. net47 was computed. net471 was computed. net472 was computed. net48 was computed. net481 was computed. |
| MonoAndroid | monoandroid was computed. |
| MonoMac | monomac was computed. |
| MonoTouch | monotouch was computed. |
| Tizen | tizen40 was computed. tizen60 was computed. |
| Xamarin.iOS | xamarinios was computed. |
| Xamarin.Mac | xamarinmac was computed. |
| Xamarin.TVOS | xamarintvos was computed. |
| Xamarin.WatchOS | xamarinwatchos was computed. |
-
.NETStandard 2.0
- HtmlAgilityPack (>= 1.11.61)
- System.Text.Json (>= 8.0.5)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.1.0 | 120 | 8/1/2026 |