Pergunta
Eu quero buscar o título de uma página que eu abertos usando urllib2. Qual é a melhor maneira de fazer isso, para analisar o HTML e encontrar o que eu preciso (por enquanto apenas o -tag mas pode precisar de mais no futuro).
Existe uma lib boa análise para este fim?
Solução
Sim, eu recomendaria BeautifulSoup
Se você está recebendo o título é simplesmente:
soup = BeautifulSoup(html)
myTitle = soup.html.head.title
ou
myTitle = soup('title')
É muito robusto e irá analisar o html não importa o quão confuso é.
Outras dicas
Tente bonito Soup :
url = 'http://www.example.com'
response = urllib2.urlopen(url)
html = response.read()
soup = BeautifulSoup(html)
title = soup.html.head.title
print title.contents
Por que vocês estão importando uma biblioteca extra inteiro para uma tarefa. Não há expressões regulares? não era o pedido de urllib não BS4 ou mech que são terceiros? a ver com bibliotecas padrão analisar o HTML e correspondem à cadeia depois dividir o '>'
'<'
com re ou whateves.
N=(len(html))
for a in html(N):
if '<title>' in a:
Title=(str(a))
isso é python 2 Eu acho que, você pode tira-lo
Use bonito Soup .
html = urllib2.urlopen("...").read()
from BeautifulSoup import BeautifulSoup
soup = BeautifulSoup(html)
print soup.title.string