logo

Lendo o conteúdo da página da web selecionada usando Python Web Scraping

Pré-requisito: Baixando arquivos em Python Raspagem da Web com BeautifulSoup Todos nós sabemos que Python é uma linguagem de programação muito fácil, mas o que a torna legal é o grande número de bibliotecas de código aberto escritas para ela. Requests é uma das bibliotecas mais utilizadas. Ele nos permite abrir qualquer site HTTP/HTTPS e fazer qualquer tipo de coisa que normalmente fazemos na web e também pode salvar sessões, ou seja, cookies. Como todos sabemos, uma página da web é apenas um pedaço de código HTML que é enviado pelo servidor da Web ao nosso navegador, que por sua vez é convertido em uma bela página. Agora precisamos de um mecanismo para obter o código-fonte HTML, ou seja, encontrar algumas tags específicas em um pacote chamado BeautifulSoup. Instalação:
pip3 install requests 
pip3 install beautifulsoup4 

Tomamos um exemplo lendo um site de notícias Tempos do Hindustão

O código pode ser dividido em três partes.
  • Solicitando uma página da web
  • Inspecionando as tags
  • Imprima o conteúdo apropriado
Passos:
    Solicitando uma página da web:Primeiro vemos clicar com o botão direito no texto da notícia para ver o código fonte Lendo o conteúdo da página da web selecionada usando Python Web Scraping' title= Inspecionando as tags:Precisamos descobrir em qual corpo do código-fonte contém a seção de notícias que queremos descartar. É a lista não ordenada 'searchNews' em uli.e que contém a seção de notícias. Lendo o conteúdo da página da web selecionada usando Python Web Scraping' title= Nota O texto da notícia está presente na parte do texto da tag âncora. Uma observação atenta nos dá a ideia de que todas as notícias estão em tags de lista da tag não ordenada. Lendo o conteúdo da página da web selecionada usando Python Web Scraping' title= Imprima o conteúdo apropriado: The content is printed with the help of code given below. Python
    import requests from bs4 import BeautifulSoup def news(): # the target we want to open  url='http://www.hindustantimes.com/top-news' #open with GET method resp=requests.get(url) #http_respone 200 means OK status if resp.status_code==200: print('Successfully opened the web page') print('The news are as follow :-n') # we need a parserPython built-in HTML parser is enough . soup=BeautifulSoup(resp.text'html.parser') # l is the list which contains all the text i.e news  l=soup.find('ul'{'class':'searchNews'}) #now we want to print only the text part of the anchor. #find all the elements of a i.e anchor for i in l.findAll('a'): print(i.text) else: print('Error') news() 

    Saída

    Successfully opened the web page The news are as follow :- Govt extends toll tax suspension use of old notes for utility bills extended till Nov 14 Modi Abe seal historic civil nuclear pact: What it means for India Rahul queues up at bank says it is to show solidarity with common man IS kills over 60 in Mosul victims dressed in orange and marked 'traitors' Rock On 2 review: Farhan Akhtar Arjun Rampal's band hasn't lost its magic Rumours of shortage in salt supply spark panic among consumers in UP Worrying truth: India ranks first in pneumonia diarrhoea deaths among kids To hell with romance here's why being single is the coolest way to be India vs England: Cheteshwar Pujara Murali Vijay make merry with tons in Rajkot Akshay-Bhumi SRK-Alia Ajay-Parineeti: Age difference doesn't matter anymore Currency ban: Only one-third have bank access; NE backward regions worst hit Nepal's central bank halts transactions with Rs 500 Rs 1000 Indian notes Political upheaval in Punjab after SC tells it to share Sutlej water Let's not kid ourselves with Trump what we have seen is what we will get Want to colour your hair? Try rose gold the hottest hair trend this winter 

Referências



Criar questionário