Created
September 30, 2014 13:22
-
-
Save danilovazb/03fae9a7c4900fa245a3 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/python | |
import urllib2 | |
from bs4 import BeautifulSoup | |
# Abre a pagina principal do IBGE onde contem os links para os estados. | |
html = urllib2.urlopen('http://cidades.ibge.gov.br/xtras/home.php').read() | |
# Pega o conteudo da pagina em HTML e joga para o BeautifulSoup mapear as tags | |
soup = BeautifulSoup(html) | |
# Apenas um contador para verificar se o loop esta correto e pegando os 27 estados do pais | |
a = 1 | |
# For, pegando os links. Ele busca no codigo HTML todas as tags que começam com "<a" | |
# exemplo: <a href="../xtras/uf.php?lang=&coduf=12&search=acre" title="Acre">AC</a></li> | |
# Ele vai buscar todo o conteudo de tags de links | |
for link in soup.find_all('a'): | |
# Aqui podemos ver também que ele faz um get para pegar o conteúdo da href | |
# ou seja, o que estiver entre aspas em href ele vai trazer como texto. | |
# no caso do exemplo acima, ele vai trazer ../xtras/uf.php?lang=&coduf=12&search=acre | |
pagina = link.get('href') | |
# Eu coloquei esse IF para distinguir as URLs, assim ele me traz apenas as URLs | |
# que contem uf.php que é o que nos interessa para pegar os estados. | |
if "uf.php" in pagina: | |
# Aqui foi feito um "pulo do gato" para conseguir extrair o conteudo e fazer uma juncao | |
# com a pagina principal para acessar o link, note que ele traz "../xtras/uf.php?lang=&coduf=12&search=acre" | |
# o que eu fiz foi fazer um split para separar em um vetor tudo que vem antes de "xtras/" e depois dele. | |
# Assim pegamos apenas o final e concatenamos com o link certo da pagina. | |
pagina = pagina.split('xtras/')[1] | |
# Na variavel abaixo é feita a concatenacao. | |
url = "http://cidades.ibge.gov.br/xtras/"+pagina | |
# Aqui nos abrimos uma nova pagina com o conteudo coletado, assim fica automatico | |
# a navegacao nos links de estados. | |
html = urllib2.urlopen(url).read() | |
print a | |
a+=1 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment