Voltar
Engineering
Tabela de conteúdo

 

Vamos supor que mecanismos de busca, como o Google, nunca existiram! Como você encontraria o que precisa em 4,2 bilhões de páginas da web? Os rastreadores da Web são programas escritos para navegar na Internet, coletar informações, indexar e analisar os dados coletados, para facilitar pesquisas rápidas. Os rastreadores são, portanto, uma solução inteligente para grandes conjuntos de dados e um catalisador para grandes avanços no campo da segurança cibernética.

Neste artigo, aprenderemos:

  1. O que é engatinhar?
  2. Aplicações do rastejamento
  3. Módulos Python usados para rastreamento
  4. Caso de uso: buscar URLs para download do YouTube usando rastreadores
  5. Como funcionam os rastreadores do CloudSEK?

web crawler

O que é engatinhar?

O rastreamento se refere ao processo de coletar/extrair dados de sites/da Internet usando rastreadores da web. Por exemplo, o Google usa robôs-aranha (rastreadores) para ler o conteúdo de bilhões de páginas da web e postagens. Em seguida, ele reúne os dados desses sites e os organiza no índice da Pesquisa do Google.

Estágios básicos do engatinhamento:
  1. Extraia dados da fonte
  2. Analise os dados coletados
  3. Limpe os dados de qualquer ruído ou entradas duplicadas
  4. Estruture os dados de acordo com a necessidade

 

Aplicações do rastejamento

As organizações rastreiam e retiram dados de páginas da web por vários motivos que podem beneficiar elas ou seus clientes. Aqui estão algumas aplicações menos conhecidas do rastreamento:

  • Comparando dados para análise de mercado
  • Monitoramento de vazamentos de dados
  • Preparando conjuntos de dados para algoritmos de aprendizado de máquina
  • Informações de verificação de fatos nas redes sociais

 

Módulos Python usados para rastreamento

  • Solicitações — Permitir que você envie solicitações HTTP para páginas da web
  • Sopa linda — Biblioteca Python que recupera dados de arquivos HTML e XML e analisa seus elementos no formato necessário
  • Selênio — Suíte de testes de código aberto usada para aplicativos da web. Ele também executa ações do navegador para recuperar dados.

 

Caso de uso: buscar URLs para download do YouTube usando rastreadores

Um único vídeo do YouTube pode ter vários URLs para download, com base em: conteúdo, resolução, taxa de bits, alcance e VR/3D. Aqui está um exemplo de API e código CLI para obter URLs para download no YouTube junto com suas Itags:

 

Estrutura do projeto

youtube
|
|---- app.py
|---- cli.py
`---- core.py

O projeto conterá três arquivos:

app.py: Para a interface da API, usando microestrutura de frasco

cli.py: Para interface de linha de comando, usando argparse módulo

core.py: contém todas as funcionalidades principais (comuns) que atuam como funções auxiliares para app.py e cli.py.

# youtube/app.py
frasco de importação
do flask import jsonify, solicite
núcleo de importação
aplicativo = Flask.flask (__name__)
app.config ["DEBUG"] = Verdadeiro
@app .route ('/', métodos = ['GET'])
def get_downloadable_urls ():
se 'url' não estiver em request.args:
return “Erro: nenhum campo de URL fornecido. Especifique um URL do youtube.”
url = request.args ['url']
urls = core.get_downloadable_urls (url)
retornar jsonify (urls)
aplicativo.run ()

O código da interface flask para obter URLs para download por meio da API.

<port>URL da solicitação - localhost:/? url= https://www.youtube.com/watch?v=FIVPlraNgXs

# youtube/cli.py
importar argparse
núcleo de importação
my_parser = argparse.argumentParser (description='Obter vídeo para download do youtube a partir do url')
my_parser.add_argument ('-u', '--url', metavar=”, obrigatório = verdadeiro, help='url do youtube')
args = my_parser.parse_args ()
urls = core.get_downloadable_urls (args.url)
imprimir ('Tenho {len (urls)} urls\n')
para índice, url em enumerate (urls, start=1):
imprimir (f' {index}. {url}\n')

Trecho de código para obter URLs para download por meio da interface de linha de comando (usando argparse para analisar comandos como argumentos)

Interface de linha de comando - python cli.py -u 'https://www.youtube.com/watch?v=aWPYw7iVBg0'

# youtube/core.py
importar json
importação re
solicitações de importação
def get_downloadable_urls (url):
html = solicitações.get (url) .texto
RE = re.compile (r'ytplayer [.] config\ s*=\ s* (\ {.*? \}); ')
conf = json.loads (re.search (html) .group (1))
player_response = json.loads (conf ['args'] ['player_response'])
dados = player_response ['streamingData']
return [{'itag': frmt ['itag'], 'url': frmt ['url']} para frmt em data ['adaptiveFormats']]

Essa é a função principal (comum) da interface API e CLI.

A execução desses comandos irá:

  1. Considere o URL do YouTube como argumento
  2. Colete a fonte da página usando o módulo Solicitações
  3. Analise e obtenha dados de streaming
  4. Objetos de resposta de retorno: url e itag

Como usar esses URLs?

  • Crie seu próprio downloader do YouTube (aplicativo web)
  • Crie uma API para baixar vídeos do YouTube

Resultado da amostra

[{
'itag': 251,
'Url': 'https://r2---sn-gwpa-h55k.googlevideo.com/videoplayback?expire=1585225812&ei=9Et8Xs6XNoHK4-EPjfyIiA8&ip=157.46.68.124&id=o-AGeDi3DVtAbmT5GiuGsDU7-NPLk23fOXNnY16gGQcHWu&itag=251&source=youtube&requiressl=yes&mh=Av&mm=31%2C26&mn=sn-gwpa-h55k%2Csn-cvh76ned&ms=au%2Conr&mv=m&mvi=1&pl=18&initcwndbps=112500&vprv=1&mime=audio%2Fwebm&gir=yes&clen=14933951&dur=986.761&lmt=1576518368612802&mt=1585204109&fvip=2&keepalive=yes&fexp=23882514&c=WEB&txp=5531432&sparams=expire%2Cei%2Cip%2Cid%2Citag%2Csource%2Crequiressl%2Cvprv%2Cmime%2Cgir%2Cclen%2Cdur%2Clmt&sig = adkhkgmwraigk4l4vvhalwmpvpecmdkhnb2u8um6eyhfz16kgruxzjucifxzjm9ejvk7ozjfqx7ywbqa3crdvvakuu86vciymv-a&lsparams=mh%2cmm%2cmn%2cms%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmv%2cmvi%2cpl%2cinitcwndbps&lsig=absnjpqwraigkbhjytjv73-c7emwbvkb-x8_rnb7_xapzvapfw7wgcmcihqj405fq3kr-e_5fv8gokmuni0rrrlg8t85slgtq17w '
}]

O que é o iTAG?

O iTag nos fornece mais detalhes sobre o vídeo, como tipo de conteúdo de vídeo, resolução, taxa de bits, alcance e VR/3D. Uma lista abrangente de ITags de código de formato do YouTube pode ser encontrada aqui.

Como funcionam os rastreadores do CloudSEK?

 

cloudsek crawlers

 

A plataforma digital de monitoramento de risco da CloudSek, xVigil, vasculha a Internet na Surface Web, Dark Web e Deep Web para detectar automaticamente ameaças e alertar os clientes. Depois de configurar uma lista de palavras-chave sugeridas pelos clientes, o CloudSEK Crawlers:

  1. Obtenha dados de várias fontes na Internet
  2. Envie os dados coletados para uma fila centralizada
  3. Os classificadores de ML agrupam os dados em ameaças e não ameaças
  4. As ameaças são imediatamente reportadas aos clientes como alertas, via xVigil. As não ameaças são simplesmente ignoradas.
Nenhum item encontrado.

Blogs relacionados