Uliana.Spidering 1.0.1

Spidering - Advanced Web Scraping Library

Fornece todos os recursos necessários para o spidering de aplicações web.

Install-Package Uliana.Spidering -Version 1.0.1
dotnet add package Uliana.Spidering --version 1.0.1
paket add Uliana.Spidering --version 1.0.1
The NuGet Team does not provide support for this client. Please contact its maintainers for support.

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!

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!

Release Notes

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

  • .NETCoreApp 2.0

    • No dependencies.

Version History

Version Downloads Last updated
1.0.1 (current) 106 11/14/2017
1.0.0 90 11/12/2017