Primeiro, instale o beautifulSoup da seguinte maneira:
PIP Install BeautifulSoup4BeautifulSoup é aplicado a um arquivo HTML e, portanto, devemos começar obtendo o conteúdo HTML de uma página da Web. Isso geralmente é feito usando o módulo de solicitações. Neste exemplo específico, obteremos o conteúdo HTML de uma página da web e exibiremos. Para isso, primeiro definimos o URL; Nesse caso, escolhi o site da Common Sense Media (porque possui uma lista de filmes com classificações, que podemos estar interessadas em raspar). Em seguida, usamos o método get () para buscar o objeto de resposta e extrair a parte HTML usando o conteúdo ou o atributo de texto.
solicitações de importaçãoAgora, podemos começar a usar o belo grupo. Criamos um objeto de belo grupo que leva dois argumentos - o arquivo html e o tipo de analisador. Existem quatro analisadores disponíveis - html.Parser, lxml, lxml-xml e html5lib.
De BS4 Import BeautifulSoupÉ preciso também instalar o analisador. Nesse caso, escolhi o analisador LXML, e então vou instalá -lo.
pip install lxmlAgora, podemos fazer praticamente qualquer coisa, mas exploraremos as diferentes possibilidades antes de começar a raspar a web.
(i) O método prettify () reescreverá o texto em um formato legível e "bonito".
sopa.embelezar()(ii) o método do título recuperará o título.
sopa.título(iii) O método "P" extrairá todas as tags P do código HTML.
sopa.p(iv) O método "A" extrairá todas as tags A do código HTML.
sopa.a(v) O método find_all () encontrará todos os elementos da Web que contêm um argumento específico. Nesse caso, eu passei "a", então encontre_all ("a") encontrará todas as tags "a".
sopa.Find_all ('A')(vi) O método de localização encontrará todos os argumentos aprovados. Nesse caso, passamos no argumento ID = “Senha.”Portanto, ele pesquisará o código HTML para o ID e, se ele corresponder, recupere a cláusula.
sopa.encontre (id = "senha")Então, normalmente, gostaríamos de raspar uma página da web para empregos, filmes, cursos, etc., junto com suas respectivas informações (como preços e classificações). Nesse caso, estamos interessados em um site, principalmente raspando a lista de filmes deles.
solicitações de importaçãoNesse caso em particular, o código HTML de cada nome do filme (o que estamos raspando) está dentro de um contêiner. Começamos primeiro inspecionando o elemento em questão. No meu caso, escolhi inspecionar o título do primeiro filme ("Till Death").
Quando você inspeciona o elemento, você notará que o que somos depois - o título do filme "Till Death" - está contido em uma tag "div" com a classe "Content -content -wrapper.”Esta primeira tag“ div ”continuará sendo recorrendo ao longo do código HTML, já que cada título do filme está contido em uma tag“ div ”. E assim dizemos que, para cada div em divs, desejamos selecionar a tag sub- "div" com uma classe diferente de "Views-Field Views-Field-Field-Reference-Review-Ent-Prod Result-Title."Depois disso, vemos uma etiqueta" forte "com o conteúdo de campo da classe.”Então fazemos a mesma coisa de novo. E, finalmente, nosso próprio título está aninhado com uma tag "A", então selecionamos a tag "A".
divs = sopa.find_all ("div", classe _ = "content-content-wrapper")Observe aqui que depois da aula da palavra, há um sublinhado. Isso ressalta a classe de código HTML das classes Python. Então, escrevemos o código que extrairá a tag "Div" com a classe "Content-Content-Wrapper.”
Então você escreve:
# divs = sopa.find_all ("div", 'classe': 'content-content-wrapper')Os loops fores existem para escolher cada filme. Finalmente, quando queremos selecionar o texto, dizemos um.texto. Este último imprimirá cada título do filme e, dessa maneira, podemos raspar o que quisermos.
Agora, suponha que desejássemos salvar esses dados em um arquivo CSV; Isso também é possível. Para escrever para CSV, você deve primeiro importar o módulo CSV. Primeiro, vamos abrir o arquivo onde queremos as informações armazenadas. Aqui passaremos três argumentos - o nome do arquivo, o modo e se queremos uma nova linha ou não. Aqui, estamos adicionando uma nova linha igual a nada para impedir que o arquivo CSV adicione retornos (ou novas linhas vazias) após cada entrada. Segundo, passamos o arquivo para o método Writer (). Terceiro, escrevemos uma nova linha. Nesse caso, estou chamando minha nova fila de "filmes" porque é o cabeçalho para o que deve seguir.
importar CSVQuarto, em vez de apenas imprimir a variável "A", vamos retirar os espaços vazios e depois usar o método Writertow () para escrevê -lo no arquivo CSV.
para div em divs:Todo o código seria algo assim:
solicitações de importaçãoEste é apenas um exemplo simples. Na realidade, a raspagem da web é tão poderosa que você pode raspar e monitorar praticamente qualquer página da web.
Codificação feliz!