Я пытаюсь извлечь содержимое одного атрибута value в конкретном теге input на веб-странице. Я использую следующий код:
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)
Я получаю TypeError: индексы списка должны быть целыми числами, а не str
хотя из документации Beautifulsoup я понимаю, что строки здесь не должны быть проблемой ... но я не специалист, и я, возможно, неправильно понял.
Любое предложение приветствуется! Заранее спасибо.
python
parsing
attributes
beautifulsoup
Barnabe
источник
источник
output = inputTag[0].contents
inputTag[0].get('value')
вместо того,inputTag[0]['value']
чтобы предотвратить отсутствие указателя в случае, если тег не имеет атрибута значенияВ
Python 3.x
просто использоватьget(attr_name)
на вашем объекте тегов , которые вы получаете с помощьюfind_all
:против XML-файла,
conf//test1.xml
который выглядит так:печатает:
источник
Если вы хотите получить несколько значений атрибутов из приведенного выше источника, вы можете использовать
findAll
и понимание списка, чтобы получить все, что вам нужно:источник
Я бы посоветовал вам сэкономить время, если предположить, что вы знаете, какие теги имеют эти атрибуты.
предположим, что у тега xyz есть атрибут с именем "Staininfo" ..
И я не хочу, чтобы вы понимали, что full_tag - это список
Таким образом, вы можете получить все значения attrb для Staininfo для всех тегов xyz
источник
вы также можете использовать это:
источник
Я использую это с Beautifulsoup 4.8.1, чтобы получить значение всех атрибутов класса определенных элементов:
Важно отметить, что ключ атрибута извлекает список, даже если атрибут имеет только одно значение.
источник
Для меня:
Это можно получить с помощью фрагмента ниже.
Надеюсь, это поможет вашей цели.
источник