Realmente foi um deslize... Quando estava passando o código pra cá dei uma "enxugada" e esqueci do alterar o import. Eu estava fazendo o teste com os 2 urllib pra ver se havia alguma diferença Quanto ao loop, na verdade não é um loop! É list comprehension! Tá... é um "loop diferente" Mas em Python agente chama de list comprehension... Acho essa feature do Python muito boa! Organiza o código e torna ele mais legível! Mas gostei do seu '\n'.join(). Ficou mais legal! Quanto a resumir ainda podemos fazer assim: from urllib import urlopen as url from re import compile as regex from BeautifulSoup import BeautifulSoup as BS f = open("samurai_x_links.txt","w") f.write('\n'.join([link.contents[0] for link in (BS(url("http://animemundobr.blogspot.com/2007/11/samurai-x-dublado.html"))).findAll("a",href=regex("http://rapidshare.com/*"))])) f.close() Pronto, tirando os imports, 3 linhas de código! Tudo bem que ficou feio... Por isso prefiro assim: import urllib import re from BeautifulSoup import BeautifulSoup page = urllib.urlopen("http://animemundobr.blogspot.com/2007/11/samurai-x-dublado.html") soup = BeautifulSoup(page) links = soup.findAll("a",href=re.compile("http://rapidshare.com/*")) lista = [link.contents[0] for link in links] f = open("samurai_x_links.txt","w") f.write('\n'.join(lista)) f.close() Como os Pythonistas dizem é mais Pythoniano! Obrigado pelo comentário!! Até mais...
from urllib import urlopen as url from re import compile as regex from BeautifulSoup import BeautifulSoup as BS f = open("samurai_x_links.txt","w") f.write('\n'.join([link.contents[0] for link in (BS(url("http://animemundobr.blogspot.com/2007/11/samurai-x-dublado.html"))).findAll("a",href=regex("http://rapidshare.com/*"))])) f.close()
import urllib import re from BeautifulSoup import BeautifulSoup page = urllib.urlopen("http://animemundobr.blogspot.com/2007/11/samurai-x-dublado.html") soup = BeautifulSoup(page) links = soup.findAll("a",href=re.compile("http://rapidshare.com/*")) lista = [link.contents[0] for link in links] f = open("samurai_x_links.txt","w") f.write('\n'.join(lista)) f.close()
Segue o link da versão formatada. Python pastebin - collaborative debugging tool
Olá magnum, parabéns pelo código, muito bom para quem está aprendendo usar a BeautifulSoup, mas há um erro no seu código, você está importando a urllib2 e usando a urllib. O que acha do código assim ? Acho que fica menos confuso do que o loop que você usou. import urllib2 import re from BeautifulSoup import BeautifulSoup page = urllib2.urlopen("http://animemundobr.blogspot.com/2007/11/samurai-x-dublado.html") soup = BeautifulSoup(page) links = soup.findAll("a",href=re.compile("http://rapidshare.com/")) lista = [] for link in links: href = link.get('href', None) if href: lista.append(href) f = open("samurai_x_links.txt","w") f.write('\n'.join(lista)) f.close() Abraço Jayson
Pô... pra um primeiro script foi ótimo!!! Também não esperaria menos que alguém que "trabalha" com o Prf. Eriberto...
Foi meu primeiro script Python O problema era bem interessante e ótimo para treinar lists comprehensions Veleu pela dica do shelve...
Tem outro muito bom também que cria arquivos de configuração usando sessões e chaves... mas não acho ele tão simples! É mais difícil de manipular também, você tem que ter certeza do tipo do dado. Não é tão automático quanto o shelve... Vou ver se depois posto ele por aqui...
Muito boa essa dica. Eu tava mesmo querendo salvar configuracoes de um sistema sem ter que ficar manipulando txt e banco de dados. acho que o shelve vai ser bem util.
Caraca muito maneiro essa estória !! show de bola
Show de bola!!! massa massa!!!
rsrs...Show