LC.LubimyCzytac.Parser
0.1.2
dotnet add package LC.LubimyCzytac.Parser --version 0.1.2
NuGet\Install-Package LC.LubimyCzytac.Parser -Version 0.1.2
<PackageReference Include="LC.LubimyCzytac.Parser" Version="0.1.2" />
<PackageVersion Include="LC.LubimyCzytac.Parser" Version="0.1.2" />
<PackageReference Include="LC.LubimyCzytac.Parser" />
paket add LC.LubimyCzytac.Parser --version 0.1.2
#r "nuget: LC.LubimyCzytac.Parser, 0.1.2"
#:package LC.LubimyCzytac.Parser@0.1.2
#addin nuget:?package=LC.LubimyCzytac.Parser&version=0.1.2
#tool nuget:?package=LC.LubimyCzytac.Parser&version=0.1.2
LC.LubimyCzytac.Parser
Biblioteka .NET (netstandard2.0) do parsowania stron ze szczegółami książek z lubimyczytac.pl. Nie wykonuje żadnych requestów HTTP — przyjmuje surowy HTML strony jako string i zwraca sparsowany model.
Instalacja
dotnet add package LC.LubimyCzytac.Parser
Użycie
using LC.LubimyCzytac.Parser;
string html = File.ReadAllText("61-godzin.html");
IBookParser parser = new LubimyCzytacBookParser();
Book book = parser.Parse(html);
Console.WriteLine(book.Title); // "61 godzin"
Console.WriteLine(book.Authors[0].Name); // "Lee Child"
Console.WriteLine(book.Series[0].Name); // "Jack Reacher"
Console.WriteLine(book.AverageRating); // 7.2
Oferty sklepów (w tym audiobooki)
Sekcja "Kup" na stronie (linki do sklepów, w tym oferty audiobooków) jest dociągana przez JavaScript z zewnętrznego API i nie występuje w statycznym HTML. Book.BuyBoxRequestUrl zawiera gotowy, spersonalizowany pod książkę adres tego API — pobierz go samodzielnie (HttpClient), a odpowiedź przekaż do BuyBoxOfferParser:
using var httpClient = new HttpClient();
httpClient.DefaultRequestHeaders.Add("x-requested-with", "xmlhttprequest");
string offersJson = await httpClient.GetStringAsync(book.BuyBoxRequestUrl);
IBuyBoxOfferParser offerParser = new BuyBoxOfferParser();
IReadOnlyList<BookstoreOffer> offers = offerParser.Parse(offersJson);
var audiobookLinks = offers
.Where(o => o.Type == BookstoreOfferType.Audiobook)
.Select(o => o.Url)
.ToList();
Kształt JSON-a zwracanego przez
buybox.clickzostał zrekonstruowany na podstawie analizy kodu JS strony (brak dostępu do prawdziwej próbki odpowiedzi) — przed użyciem produkcyjnym warto zweryfikować go względem żywego API.
Licencja
MIT — zobacz LICENSE.
| 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
- AngleSharp (>= 1.5.2)
- System.Text.Json (>= 10.0.10)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.