Ir ao conteúdo

Posts recomendados

Postado

Galera,

 

Estou auxiliando fazer a migração de uma site para outra plataforma, entretanto estou tendo dificuldades em coletar (scraping) das noticias do site anterior para manter o histórico.

 

Fiz alguns testes com um python e é o que tem me atendido melhor no momento entretanto ainda não consegui pegar as informações que preciso.

 

As notícias estão da seguinte maneira:

 

<div class="corpoEsq">
  <article id="verConteudo">
    <h1 class="v1">Titulo da Notícia</h1>
    <div class="cpCont">
      <figure class="img md2">
        <img src="imagens/uploads/conteudos/nome_do_arquivo.jpg" alt="" title="" width="348" heigth="224">
      </figure>
      <section class="main">
        <p style="text-align: justify;">
          <span style="font-size: small; font-family: arial, helvetica, sans-serif;">Pagrafo 1.</span>
        </p>
        <p style="text-align: justify;">
          <span style="font-size: small; font-family: arial, helvetica, sans-serif;">Paragrafo 2</span>
        </p>
        <p style="text-align: justify;">
          <span style="font-size: small; font-family: arial, helvetica, sans-serif;">Paragrafo 3</span>
        </p>
        <p style="text-align: justify;">
          <span style="font-size: small; font-family: arial, helvetica, sans-serif;">Paragrafo 4</span>
        </p>
        <p style="text-align: justify;"><span style="font-size: small; font-family: arial, helvetica, sans-serif;">Paragrafo 5</span>
        </p>
        <p style="text-align: justify;">
          <span style="font-size: small; font-family: arial, helvetica, sans-serif;">Paragrafo 6</span>
        </p>
        <p style="text-align: justify;">
          <span style="font-size: small; font-family: arial, helvetica, sans-serif;">Paragrafo 7.</span>
        </p>
      </section>
    </div>
  </article>
</div>

 

Como o acesso é realizado por url amigável não consegui até o momento navegar pelo índice de cada notícia, desta forma acredito que o primeiro passo seja percorrer a pagina que listam as notícias para pegar as URL do pagina da notícia, da chamada, da data de publicação e url para a imagem de destaque.

 

A página que lista as notícias é assim:

 

<div id="listaNoticias" class="corpoEsq">
  <h1 class="v1">Notícias</h1>
  <ul>
    <li>
      <a title="Título da Notícia 1" href="conteudo/url_da_notica_1.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_1.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 1</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 1.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 2" href="conteudo/url_da_notica_2.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_2.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 2</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 2.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 3" href="conteudo/url_da_notica_3.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_3.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 3</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 3.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 4" href="conteudo/url_da_notica_4.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_4.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 4</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 4.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 5" href="conteudo/url_da_notica_5.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_5.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 5</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 5.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 6" href="conteudo/url_da_notica_6.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_6.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 6</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 6.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 7" href="conteudo/url_da_notica_7.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_7.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 7</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 7.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 8" href="conteudo/url_da_notica_8.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_8.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 8</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 8.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 9" href="conteudo/url_da_notica_9.html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_9.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 9</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 9.</p>
        </div>
      </a>
    </li>
    <li>
      <a title="Título da Notícia 10" href="conteudo/url_da_notica_10html">
        <img alt="" src="imagens/uploads/conteudos/nome_da_imagem_destaque_10.jpg" class="img" width="211" height="108">
        <div class="body">
          <h2 class="tit fft1">Chamda Notícia 10</h2>
          <span class="data">XX/XX/XXXX</span>
          <p class="desc">Resumo notícia 10.</p>
        </div>
      </a>
    </li>
  </ul>
  <div style="clear:both;">
    <div style="position:relative; font-size:12px;" class="paginacaoPublica">
      <div align="left" id="paginacaoExibindo">Mostrando <b>1</b> à <b>10</b> (de <b>2512</b> encontrados)</div>
      <div align="right" class="paginacaoContainer" style="border:0px solid;">
        <ol>
          <li class="paginacaoTitulo">
            <strong>PÁGINAS</strong>: </li>
          <li>
            <span class="current">01</span>
          </li>
          <li>
            <a href="noticias/pagina/2/" class="linkClass">02</a>
          </li>
          <li>
            <a href="noticias/pagina/3/" class="linkClass">03</a>
          </li>
          <li>
            <a href="noticias/pagina/4/" class="linkClass">...</a>
          </li>
          <li>
            <a href="noticias/pagina/252/" class="linkClass" title="Última Página" alt="Última Página">»</a>
          </li>
        </ol>
      </div>
    </div>
  </div>
</div>

 

Desta forma com um pouco de google cheguei ao seguinte código

 

from mailbox import NotEmptyError
from turtle import st
from urllib.request import urlopen
from urllib.error import HTTPError
from urllib.error import URLError
from bs4 import BeautifulSoup


iContador = 1
arquivo = open("noticias.txt", "a")
while iContador <= 2512:
    sPagina = str(iContador)
    html = urlopen("http://www.site.com.br/noticias/pagina/" + sPagina)
    res = BeautifulSoup(html.read(),"html5lib")
    tags = res.findAll("a")
    for tag in tags:
        if tag is None:
            print("Não Localizados! Página" + sPagina)
        else:
            texto = str(tag)
            arquivo.write(texto + "\n")
    iContador = iContador + 1

 

o problema e que não estou conseguindo referencias na instrução "tags = res.findAll()" somente a url do "<a title="Título da Notícia 1" href="conteudo/url_da_notica_1.html">" para com uma estrutura de repetição aninhada, entrar dentro de cada noticia e coletar as informações que preciso.

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!