Estoy tratando de extraer el contenido de un atributo de "valor" único en una etiqueta de "entrada" específica en una página web. Yo uso el siguiente 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)
Obtengo un TypeError: los índices de lista deben ser enteros, no str
a pesar de que de la documentación de Beautifulsoup entiendo que las cadenas no deberían ser un problema aquí ... pero no soy un especialista y puede que lo haya entendido mal.
¡Cualquier sugerencia sera grandemente apreciada! Gracias por adelantado.
python
parsing
attributes
beautifulsoup
Bernabé
fuente
fuente
output = inputTag[0].contents
inputTag[0].get('value')
lugar deinputTag[0]['value']
evitar ningún puntero en caso de que la etiqueta noEn
Python 3.x
, simplemente useget(attr_name)
en su objeto de etiqueta que obtiene usandofind_all
:contra un archivo XML
conf//test1.xml
que se parece a:huellas dactilares:
fuente
Si desea recuperar múltiples valores de atributos de la fuente anterior, puede usar
findAll
una lista de comprensión para obtener todo lo que necesita:fuente
De hecho, le sugeriría una forma de ahorrar tiempo asumiendo que sabe qué tipo de etiquetas tienen esos atributos.
supongamos que una etiqueta xyz tiene ese atributo llamado "staininfo".
Y no quiero que entiendas que full_tag es una lista
Por lo tanto, puede obtener todos los valores attrb de staininfo para todas las etiquetas xyz
fuente
también puedes usar esto:
fuente
Estoy usando esto con Beautifulsoup 4.8.1 para obtener el valor de todos los atributos de clase de ciertos elementos:
Es importante tener en cuenta que la clave de atributo recupera una lista incluso cuando el atributo tiene un solo valor.
fuente