Como analisar e raspar o HTML usando pyQuery

Como analisar e raspar o 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 de documentos. Este artigo abordará um guia simples sobre pyQuery que ajudará você a começar com o módulo.

Instalação de 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 Instale pyQuery

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

Criando uma árvore de documentos para parsácia

Antes de poder 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 Import pyQuery como PQ
documento = PQ ("Hello World !!")
Imprimir (documento)
Imprimir (tipo (documento))

A primeira declaração importa a classe "PyQuery" do módulo "PyQuery". Em seguida, uma nova instância da classe de pyQuery é criada. Depois de executar a amostra 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 de tipo de 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 Import pyQuery como PQ
documento = PQ ("Hello World !!")
Imprimir (Ajuda (documento))

Você também pode navegar pela API para aula de pyquery online.

Para criar a árvore de documentos a partir de um URL, use o código a seguir (substitua "URL" pelo seu próprio endereço desejado):

De PyQuery Import pyQuery como PQ
Document = PQ (URL = 'https: // Exemplo.com ')
Imprimir (documento)

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

De PyQuery Import pyQuery como PQ
Document = PQ (nome do arquivo = 'Índice.html ')
Imprimir (documento)

Agora que você tem uma árvore de documentos, você 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 amostras. Para todos os métodos utilizáveis, consulte a API disponível aqui.

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

De PyQuery Import pyQuery como PQ
document = pq ("

Olá Mundo !!

")
p = documento ('P')
impressão (p.texto())

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

Olá Mundo !!

Você pode obter atributos de uma tag usando o método "Att". 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 pontos.

De PyQuery Import pyQuery como PQ
document = pq ("

Olá Mundo !!

")
p = documento ('P')
Imprimir (documento)
impressão (p.att ("id"), p.attr.eu ia)

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

Olá Mundo !!

Você pode manipular o CSS usando o método "CSS". Para adicionar estilos CSS a

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

De PyQuery Import pyQuery como PQ
document = pq ("

Olá Mundo !!

")
p = documento ('P')
p.CSS ("color": "Red")
Imprimir (documento)
impressão (p.attr ("style")))

Substitua a parte ““ cor ”:“ vermelha ”” com 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 aula de pré-estilo, basta usar o método "addclass" para aplicar os estilos existentes.

De PyQuery Import pyQuery como PQ
document = pq ("

Olá Mundo !!

")
p = documento ('P')
p.addclass ("mystyle")

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

De PyQuery Import pyQuery como PQ
document = pq ("

Olá Mundo !!

")
p = documento ('P')
p.Apresença ("

Oi

")
p.acrescentar("

Tchau

")
Imprimir (documento)

Substitua os argumentos no método "Aprendem" e "Anexar" com seus próprios valores. Depois de executar a amostra 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 Import pyQuery como PQ
document = pq ("

Olá Mundo !!

")
p = documento ('P')
p.vazio()
Imprimir (documento)

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

Você pode usar o método "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“ olá ”:

De PyQuery Import pyQuery como PQ
document = pq ("

Olá

Mundo !!

")
p = documento ('P')
impressão (p.filtro ("#hello"))

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

Olá

Você pode encontrar várias tags / elementos ao mesmo tempo usando o método "Find":

De PyQuery Import pyQuery como PQ
document = pq ("

Olá

Mundo !!

")
Imprimir (documento.encontre ('p'))

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

Olá

Mundo !!

Você pode alternar entre os analisadores "XML" e "HTML" usando um argumento adicional de "analisador":

De PyQuery Import pyQuery como PQ
document = pq ("

Olá

Mundo !!

", Parser =" html ")
Imprimir (documento)

Se você precisar de ajuda mais.

Conclusão

O PyQuery permite analisar rapidamente documentos HTML escrevendo código mínimo, pois inclui inúmeras funções auxiliares que omitem completamente a necessidade de escrever código personalizado. Seu "jQuery", como sintaxe e estrutura, também ajuda a selecionar elementos e nós sem se aprofundar na árvore de documentos, especialmente quando há muita marcação aninhada.