Uliana.Spidering 1.0.1

The owner has unlisted this package. This could mean that the package is deprecated, has security vulnerabilities or shouldn't be used anymore.
dotnet add package Uliana.Spidering --version 1.0.1
NuGet\Install-Package Uliana.Spidering -Version 1.0.1
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="Uliana.Spidering" Version="1.0.1" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
paket add Uliana.Spidering --version 1.0.1
#r "nuget: Uliana.Spidering, 1.0.1"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
// Install Uliana.Spidering as a Cake Addin
#addin nuget:?package=Uliana.Spidering&version=1.0.1

// Install Uliana.Spidering as a Cake Tool
#tool nuget:?package=Uliana.Spidering&version=1.0.1

CSharp Spider Library - Uliana.Spidering

Apresentação

A biblioteca foi desenvolvida para auxiliar alguns de meus spiders disponíveis no NuGet que visam exatamente recursos de extração, indexação e fixação de dados presentes na web. Sinta-se livre para utiliza-la, mas que fique claro, não me responsabilizo por qualquer violação de direitos por parte dos sites que a Ulina.Spidering consumir, isso fica a cargo do desenvolvedor que utilizará a mesma.

Dentro do conteúdo apresentado pela biblioteca, temos vários parsers de conteúdo presente na web, desde documentos de configuração genérico (como robots.txt ou sitemap.xml) assim como a serialização de conteúdos DOM, e um certo nível de controle de scripts, porém sem presença no repositório público por estar em fase extremamente prematura.

Instalando em seu projeto

Você pode instalar a biblioteca no seu projeto atravéz do NuGet:

Via Package Manager:

Install-Package Uliana.Spidering -Version 1.0.1

Via .NET CLI:

dotnet add package Uliana.Spidering --version 1.0.1

Via Paket CLI:

paket add Uliana.Spidering --version 1.0.1

Para mais informações, você pode visitar a página do pacote nesse link.

Exemplo Genérico: Serializando um arquivo robots.txt

Baseado em outras consagradas bibliotecas de serialização de conteúdo na web, que sempre impunham ao desenvolvedor uma enorme série de depêndencias para realizar o parsing do conteúdo dentro do arquivo robots.txt, para facilitar isso, a biblioteca tem total suporte as regras de crawling parametrizadas pelo arquivo. Vamos observar um simples exemplo:

# Regras genéricas, retirado parcialmente das regras do Facebook.
User-agent: Googlebot
Disallow: /addContacts*
Disallow: /addressBookExport*
Disallow: /analytics/
Disallow: /answers*
Disallow: /cap/

Vamos considerar o arquivo de configuração acima serializado dentro de um arquivo txt no mesmo diretório onde o seu binário que consumirá a aplicação está localizado, dessa forma podemos serializado da seguinte forma:

// Le-se o conteúdo dentro do arquivo
var robots = File.ReadAllText("robots.txt");
// Instânciamos o objeto para gerenciar as regras
var parser = RobotParser.Load(robots);

E agora basta consumirmos o conteúdo passado no construtor da classe que gerencia tudo isso, RobotParser:

// Imprime o total de regras contidas no arquivo
WriteLine($"Existem {parser.Rules.Count} regras no arquivo.");
var regra = parser.Rules[0];
// Imprime o agente de usuário indexado na posição 0 das regras
WriteLine($"Regras para o user-agent {regra.UserAgent}:");
// Imprime a capacidade de acesso ao diretório /analytics/
WriteLine("Pode acessar /analytics/?: " +
          $"{parser.IsPathAllowed(regra.UserAgent, "analytics")}");
// Imprime a capacidade de acesso ao diretório /analytics/admin
WriteLine("Pode acessar /analytics/admin?: " +
          $"{parser.IsPathAllowed(regra.UserAgent, "analytics/admin")}");

Como podemos observar, todas as regras dentro do snippet utilizado para exemplo foram serializadas com sucesso, por tanto, podemos dessa forma realizar o spidering eficiente, e preferencialmente sem violar qualquer regra de acesso de um certo serviço na web.


Compilando a biblioteca

Para realizar a compilação, e gerar a mesma build, é necessário que o sistema operacional alvo tenha instalado um ambiente com o DotNet Core v2.x.x instalado, e também o pacote de ferramentas Git Tools.

  1. Clonando o repositório e navegando até a pasta do projeto:
$ git clone https://github.com/JonasUliana/Spidering.git
$ cd Spidering
  1. Restaurando e gerando a build do projeto:
$ dotnet restore && dotnet build

E isso é tudo senhor! Apenas com duas instruções, você já pode consumir a biblioteca em qualquer um de seus projetos, sinta-se livre para colaborar com o desenvolvimento da mesma, somente assim encontro motivação (e talvez raiva) para persistir na melhoria da mesma!

Product 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. 
.NET Core netcoreapp2.0 is compatible.  netcoreapp2.1 was computed.  netcoreapp2.2 was computed.  netcoreapp3.0 was computed.  netcoreapp3.1 was computed. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
  • .NETCoreApp 2.0

    • No dependencies.

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

Pequenas correções de typo;
Adicionado documentação ausente.