Estou tentando extrair o conteúdo de um único atributo "valor" em uma tag "entrada" específica em uma página da web. Eu uso o seguinte código:
import urllib
f = urllib.urlopen("http://58.68.130.147")
s = f.read()
f.close()
from BeautifulSoup import BeautifulStoneSoup
soup = BeautifulStoneSoup(s)
inputTag = soup.findAll(attrs={"name" : "stainfo"})
output = inputTag['value']
print str(output)
Recebo um TypeError: os índices da lista devem ser inteiros, não str
Embora a partir da documentação do Beautifulsoup eu entenda que as strings não devem ser um problema aqui ... mas não sou nenhum especialista e posso ter entendido mal.
Qualquer sugestão é muito apreciada! Desde já, obrigado.
python
parsing
attributes
beautifulsoup
Barnabe
fonte
fonte
output = inputTag[0].contents
inputTag[0].get('value')
vez deinputTag[0]['value']
para evitar nenhum ponteiro no caso da tag como nenhum atributo de valorEm
Python 3.x
, basta usarget(attr_name)
em seu objeto tag que você obtém usandofind_all
:contra um arquivo XML
conf//test1.xml
que se parece com:estampas:
fonte
Se você deseja recuperar vários valores de atributos da fonte acima, você pode usar
findAll
uma compreensão de lista para obter tudo que você precisa:fonte
Na verdade, eu sugeriria uma maneira de economizar tempo para fazer isso, supondo que você saiba que tipo de tag tem esses atributos.
suponha que uma tag xyz tenha esse attritube chamado "staininfo".
E eu quero que você entenda que full_tag é uma lista
Assim você pode obter todos os valores de atributo de staininfo para todas as marcas xyz
fonte
você também pode usar isto:
fonte
Estou usando isso com Beautifulsoup 4.8.1 para obter o valor de todos os atributos de classe de certos elementos:
É importante observar que a chave do atributo recupera uma lista mesmo quando o atributo tem apenas um único valor.
fonte