Eu quero imprimir um valor de atributo com base em seu nome, por exemplo
<META NAME="City" content="Austin">
Eu quero fazer algo assim
soup = BeautifulSoup(f) //f is some HTML containing the above meta tag
for meta_tag in soup('meta'):
if meta_tag['name'] == 'City':
print meta_tag['content']
O código acima fornece um KeyError: 'name'
, acredito que isso seja porque o nome é usado por BeatifulSoup, portanto, não pode ser usado como um argumento de palavra-chave.
python
beautifulsoup
Ruth
fonte
fonte
soup.findAll("meta", {"name":"City"})['content']
. Isso retornará todas as ocorrências.o mais duro respondeu à pergunta, mas aqui está outra maneira de fazer a mesma coisa. Além disso, em seu exemplo, você tem NAME em letras maiúsculas e em seu código o nome em letras minúsculas.
fonte
6 anos atrasado para a festa, mas tenho pesquisado como extrair o valor do atributo de tag de um elemento html , para:
Eu quero "addressLocality". Continuei sendo direcionado de volta para cá, mas as respostas não resolveram realmente meu problema.
Como consegui fazer isso eventualmente:
Como é um ditado, você também pode usar
keys
e 'valores'Espero que ajude outra pessoa!
fonte
O seguinte funciona:
fonte
a resposta do theharshest é a melhor solução, mas, para sua informação, o problema que você estava encontrando tem a ver com o fato de que um objeto Tag em Beautiful Soup age como um dicionário Python. Se você acessar a tag ['nome'] em uma tag que não tem um atributo 'nome', você receberá um KeyError.
fonte
Também se pode tentar esta solução:
Para encontrar o valor, que está escrito na extensão da tabela
htmlContent
Código Python
fonte
fonte