Pitão

Como analisar e raspar HTML usando Pyquery

Como analisar e raspar HTML usando Pyquery
“Pyquery” é um módulo Python de terceiros que permite analisar e extrair dados de documentos “xml” e “html”. É inspirado na biblioteca jQuery JavaScript e apresenta uma sintaxe quase idêntica, permitindo que você use muitas funções auxiliares e código abreviado para analisar e manipular a árvore do documento. Este artigo cobrirá um guia simples sobre Pyquery que o ajudará a começar com o módulo.

Instalação Pyquery

Para instalar o Pyquery no Ubuntu, use o comando especificado abaixo:

$ sudo apt install python3-pyquery

Você também pode instalar a versão mais recente do Pyquery do gerenciador de pacotes “pip” executando os dois comandos a seguir em sucessão:

$ sudo apt install python3-pip
$ pip3 install pyquery

Para instalar o Pyquery em outras distribuições Linux, instale “pip3” do gerenciador de pacotes e execute o segundo comando mencionado acima.

Criação de uma árvore de documentos analisável

Antes de analisar e extrair dados de um documento HTML, você precisa criar uma árvore de documentos. Você pode criar uma árvore de documentos a partir de uma marcação HTML simples usando o exemplo de código abaixo:

de pyquery importe PyQuery como pq
document = pq ("Olá, mundo !!")
imprimir (documento)
imprimir (tipo (documento))

A primeira instrução importa a classe “PyQuery” do módulo “pyquery”. Em seguida, uma nova instância da classe PyQuery é criada. Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Olá Mundo !!

Observe a segunda linha na saída. Aqui, "documento", que é uma instância da classe "PyQuery", não retorna um objeto do tipo string. Você pode consultar rapidamente todos os métodos disponíveis para a instância de "documento", adicionando a seguinte linha extra ao exemplo de código acima:

de pyquery importe PyQuery como pq
documento = pq ("Olá Mundo !!")
imprimir (ajuda (documento))

Você também pode navegar na API para a classe PyQuery online.

Para criar uma árvore de documentos a partir de um URL, use o seguinte código (substitua “url” pelo seu próprio endereço desejado):

de pyquery importe PyQuery como pq
document = pq (url = 'https: // exemplo.com ')
imprimir (documento)

Para criar uma árvore de documentos a partir de um arquivo HTML local, use o código abaixo (substitua o valor de “nome do arquivo” de acordo com suas necessidades):

de pyquery importe PyQuery como pq
documento = pq (nome do arquivo = 'índice.html ')
imprimir (documento)

Agora que você tem uma árvore de documentos, pode começar a analisá-la.

Manipulando a árvore de documentos

Você pode extrair dados e manipular árvores de documentos usando uma variedade de métodos. Alguns dos métodos mais comuns estão listados abaixo com exemplos. Para todos os métodos utilizáveis, consulte a API disponível aqui.

Você pode usar o método “text” para obter o conteúdo de texto de um elemento:

de pyquery importe PyQuery como pq
documento = pq ("

Olá Mundo !!

")
p = documento ('p')
imprimir (p.texto())

Você pode escolher uma tag / elemento específico, fornecendo seu nome como argumento para a instância do "documento". Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Olá Mundo !!

Você pode obter atributos de uma tag usando o método “attr”. Para fazer isso, escolha uma tag que você deseja analisar ('p' neste caso) e forneça o nome do atributo como um argumento ('id' neste caso) ou use a notação de ponto.

de pyquery importe PyQuery como pq
documento = pq ("

Olá Mundo !!

")
p = documento ('p')
imprimir (documento)
imprimir (p.attr ("id"), p.atr.eu ia)

Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Olá Mundo !!

Você pode manipular CSS usando o método “css”. Para adicionar estilos CSS a

ou qualquer outra tag, você pode usar o seguinte código:

de pyquery importe PyQuery como pq
documento = pq ("

Olá Mundo !!

")
p = documento ('p')
p.css ("color": "red")
imprimir (documento)
imprimir (p.attr ("estilo"))

Substitua a parte ““ color ”:“ red ”” por seus próprios estilos personalizados. Depois de executar o exemplo de código acima, você deve obter a seguinte saída e pode verificar se o CSS foi aplicado corretamente:

Olá Mundo !!


cor vermelha

Se você tem uma classe pré-estilizada, você pode apenas usar o método “addClass” para aplicar os estilos existentes.

de pyquery importe PyQuery como pq
documento = pq ("

Olá Mundo !!

")
p = documento ('p')
p.addClass ("mystyle")

Você pode anexar e preceder sua própria marcação personalizada usando o exemplo de código abaixo:

de pyquery importe PyQuery como pq
documento = pq ("

Olá Mundo !!

")
p = documento ('p')
p.prefixar ("

Oi

")
p.acrescentar("

Tchau

")
imprimir (documento)

Substitua os argumentos no método “prefixar” e “anexar” por seus próprios valores. Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Oi

Olá Mundo !!

Tchau

Para remover o conteúdo de um elemento, use o método “vazio”.

de pyquery importe PyQuery como pq
documento = pq ("

Olá Mundo !!

")
p = documento ('p')
p.vazio()
imprimir (documento)

Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Você pode usar o método de “filtro” para selecionar elementos específicos quando houver várias tags do mesmo tipo. Por exemplo, o código abaixo pega um “

”Tag tendo um“ id ”como“ hello ”:

de pyquery importe PyQuery como pq
documento = pq ("

Olá

Mundo !!

")
p = documento ('p')
imprimir (p.filtro ("# olá"))

Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Olá

Você pode encontrar várias tags / elementos de uma vez usando o método “find”:

de pyquery importe PyQuery como pq
documento = pq ("

Olá

Mundo !!

")
imprimir (documento.find ('p'))

Forneça o nome da tag / elemento como argumento para o método “find”. Depois de executar o exemplo de código acima, você deve obter a seguinte saída:

Olá

Mundo !!

Você pode alternar entre analisadores “xml” e “html” usando um argumento “analisador” adicional:

de pyquery importe PyQuery como pq
documento = pq ("

Olá

Mundo !!

", analisador =" html ")
imprimir (documento)

Se precisar de mais ajuda com o Pyquery, consulte sua documentação oficial e exemplos disponíveis aqui.

Conclusão

PyQuery permite que você analise rapidamente documentos html escrevendo código mínimo, pois inclui várias funções auxiliares que omitem completamente a necessidade de escrever código personalizado. Sua sintaxe e estrutura semelhantes a "jQuery" também ajudam na seleção de elementos e nós sem ir mais fundo na árvore do documento, especialmente quando há muita marcação aninhada.

Como alterar as configurações do mouse e touchpad usando Xinput no Linux
A maioria das distribuições Linux vem com a biblioteca “libinput” por padrão para lidar com eventos de entrada em um sistema. Ele pode processar event...
Remapeie os botões do mouse de maneira diferente para software diferente com o controle de botão do mouse X
Talvez você precise de uma ferramenta que possa fazer o controle do seu mouse mudar com cada aplicativo que você usa. Se for esse o caso, você pode ex...
Análise do mouse sem fio Microsoft Sculpt Touch
Recentemente li sobre o Microsoft Sculpt Touch mouse sem fio e decidi comprá-lo. Depois de usá-lo por um tempo, decidi compartilhar minha experiência ...