Raspagem da web

Web scraping usando Python

Web scraping usando Python
Web scraping é uma forma automatizada de extrair e processar informações de sites da Internet em uma quantidade muito grande. Os dados nos sites da internet não são estruturados, podendo ser coletados e estruturados por meio de web scraping. Mecanismos de busca como Google, Bing, Yahoo têm bots que extraem dados de sites da internet e os indexam em suas páginas de busca. Os dados também podem ser extraídos usando APIs, que é provavelmente uma das melhores maneiras de extrair dados da web. Sites famosos como Facebook, Google, Amazon fornecem aos usuários APIs bem estruturadas para interagir com os dados, mas você não verá essas APIs em todos os lugares.

Por exemplo, se você deseja obter atualizações regulares sobre seus produtos favoritos para ofertas de desconto ou deseja automatizar o processo de download de episódios de sua temporada favorita, um por um, e o site não tem nenhuma API para isso, então a única escolha você fica com o web scraping.O scraping da web pode ser ilegal em alguns sites, dependendo se o site permite ou não. Os sites usam “robôs.txt ”para definir explicitamente URLs que não podem ser descartados. Você pode verificar se o site permite ou não anexando “robôs.txt ”com o nome de domínio do site. Por exemplo, https: // www.Google.com / robôs.TXT

Neste artigo, usaremos Python para extração porque é muito fácil de configurar e usar. Ele tem muitos bibliotecários integrados e de terceiros que podem ser usados ​​para extrair e organizar dados. Usaremos duas bibliotecas Python “urllib” para buscar a página da web e “BeautifulSoup” para analisar a página da web para aplicar as operações de programação.

Como funciona o Web Scraping?

Enviamos uma solicitação para a página da web, de onde você deseja extrair os dados. O site responderá à solicitação com o conteúdo HTML da página. Então, podemos analisar esta página da web para BeautifulSoup para processamento posterior. Para buscar a página da web, usaremos a biblioteca “urllib” em Python.

O Urllib baixará o conteúdo da página da web em HTML. Não podemos aplicar operações de string a esta página HTML para extração de conteúdo e processamento posterior. Usaremos uma biblioteca Python “BeautifulSoup” que analisará o conteúdo e extrairá os dados interessantes.

Artigos de raspagem do Linuxhint.com

Agora que temos uma ideia de como funciona o web scraping, vamos praticar. Tentaremos extrair títulos de artigos e links do Linuxhint.com. Então abra https: // linuxhint.com / em seu navegador.

Agora pressione CRTL + U para visualizar o código-fonte HTML da página da web.

Copie o código-fonte e vá para https: // htmlformatter.com / para melhorar o código. Depois de aperfeiçoar o código, é fácil inspecioná-lo e encontrar informações interessantes.

Agora, copie novamente o código formatado e cole-o em seu editor de texto favorito, como atom, texto sublime, etc. Agora vamos coletar as informações interessantes usando Python. Digite o seguinte

// Instale uma bela biblioteca de sopa, urllib vem
pré-instalado em Python
ubuntu @ ubuntu: ~ $ sudo pip3 install bs4
ubuntu @ ubuntu: ~ $ python3
Python 3.7.3 (padrão, 7 de outubro de 2019, 12:56:13)
[GCC 8.3.0] no linux

Digite “ajuda”, “direitos autorais”, “créditos” ou “licença” para obter mais informações.

// Importar urllib
>>> import urllib.solicitação
// Importar BeautifulSoup
>>> do bs4 import BeautifulSoup
// Insira o URL que deseja buscar
>>> my_url = 'https: // linuxhint.com / '
// Solicite a página da Web do URL usando o comando urlopen
>>> cliente = urllib.solicitação.urlopen (meu_url)
// Armazena a página da web HTML na variável “html_page”
>>> html_page = client.leitura()
// Feche a conexão do URL após buscar a página da web
>>> cliente.perto()
// analisa a página da web HTML para BeautifulSoup para raspagem
>>> page_soup = BeautifulSoup (html_page, "html.analisador ")

Agora vamos dar uma olhada no código-fonte HTML que acabamos de copiar e colar para encontrar coisas de nosso interesse.

Você pode ver que o primeiro artigo listado no Linuxhint.com é chamado de “74 exemplos de operadores de Bash”, encontre-o no código-fonte. É colocado entre tags de cabeçalho e seu código é



class = "category-1561"> Programação BASH


title = "74 exemplos de operadores Bash"> 74 operadores Bash
Exemplos


O mesmo código se repete continuamente com a mudança apenas dos títulos e links dos artigos. O próximo artigo tem o seguinte código HTML



class = "category-1343"> Ubuntu
Verniz


title = "Como configurar o cache do Varnish no Ubuntu 18.04 ">
Como configurar o cache do Varnish no Ubuntu 18.04


Você pode ver que todos os artigos, incluindo esses dois, estão incluídos no mesmo “

”Tag e usar a mesma classe“ entry-title ”. Podemos usar a função “findAll” na biblioteca Beautiful Soup para encontrar e listar todos os “

”Tendo a classe“ entry-title ”. Digite o seguinte em seu console Python

// Este comando encontrará todos os “

”Elementos de tag com classe chamada
“Entry-title”. A saída será armazenada em uma matriz.
>>> artigos = page_soup.findAll ("h2" ,
"classe": "título-entrada")
// O número de artigos encontrados na página inicial do Linuxhint.com
>>> len (artigos)
102
// Extraído pela primeira vez “

”Elemento de tag contendo o nome do artigo e link
>>> artigos [0]


title = "74 Exemplos de operadores Bash">
74 Exemplos de operadores Bash


// Segundo extraído “

”Elemento de tag contendo o nome do artigo e link
>>> artigos [1]


title = "Como configurar o cache do Varnish no Ubuntu 18.04 ">
Como configurar o cache do Varnish no Ubuntu 18.04


// Exibindo apenas texto em tags HTML usando a função de texto
>>> artigos [1].texto
'Como configurar o cache do Varnish no Ubuntu 18.04 '

Agora que temos uma lista de todos os 102 HTML “

”Elementos de tag que contém o link do artigo e o título do artigo. Podemos extrair links de artigos e títulos. Para extrair links de “”, Podemos usar o seguinte código

// O código a seguir extrairá o link do primeiro

elemento tag
>>> para link em artigos [0].find_all ('a', href = True):
… Imprimir (link ['href'])

https: // linuxhint.com / bash_operator_examples /

Agora podemos escrever um loop for que itera por meio de cada “

Elemento de tag ”na lista de“ artigos ”e extraia o link e o título do artigo.

>>> para i no intervalo (0,10):
… Imprimir (artigos [i].texto)
... para link em artigos [i].find_all ('a', href = True):
… Imprimir (link ['href'] + "\ n")

74 Exemplos de operadores Bash
https: // linuxhint.com / bash_operator_examples /
Como configurar o cache do Varnish no Ubuntu 18.04
https: // linuxhint.com / varnish_cache_ubuntu_1804 /
PineTime: um smartwatch compatível com Linux
https: // linuxhint.com / pinetime_linux_smartwatch /
Os 10 melhores laptops Linux baratos para comprar dentro do orçamento
https: // linuxhint.com / best_cheap_linux_laptops /
Jogos HD Remasterizados para Linux que nunca tiveram uma versão Linux ..
https: // linuxhint.com / hd_remastered_games_linux /
Aplicativos de gravação de tela 60 FPS para Linux
https: // linuxhint.com / 60_fps_screen_recording_apps_linux /
74 Exemplos de operadores Bash
https: // linuxhint.com / bash_operator_examples /
... recorte ..

Da mesma forma, você salva esses resultados em um arquivo JSON ou CSV.

Conclusão

Suas tarefas diárias não são apenas gerenciamento de arquivos ou execução de comandos do sistema. Você também pode automatizar tarefas relacionadas à web, como automação de download de arquivos ou extração de dados, copiando a web em Python. Este artigo foi limitado apenas à extração de dados simples, mas você pode fazer uma grande automação de tarefas usando “urllib” e “BeautifulSoup”.

Batalha por Wesnoth 1.13.6 Desenvolvimento lançado
Batalha por Wesnoth 1.13.6 lançado no mês passado, é o sexto lançamento de desenvolvimento no 1.13.série x e oferece uma série de melhorias, principal...
Como instalar o League Of Legends no Ubuntu 14.04
Se você é fã de League of Legends, esta é uma oportunidade para testar o funcionamento de League of Legends. Observe que LOL é suportado no PlayOnLinu...
Instale o último jogo de estratégia OpenRA no Ubuntu Linux
OpenRA é um motor de jogo de estratégia em tempo real Libre / Free que recria os primeiros jogos Westwood como o clássico Command & Conquer: Red Alert...