Извлечение значения атрибута с beautifulsoup

Вы можете добавить атрибут min или max в input type=date . Дата должна быть в формате ISO (yyyy-mm-dd). Это поддерживается во многих мобильных браузерах и текущих версиях Chrome, хотя пользователи могут вручную вводить недопустимую дату без использования datepicker.


Атрибуты min и max должны быть полной датой; нет способа указать «сегодня» или «+0». Для этого вам необходимо использовать JavaScript или серверный язык:

var today = new Date().toISOString().split('T')[0];
document.getElementsByName("somedate")[0].setAttribute('min', today);

http://jsfiddle.net/mblase75/kz7d2/

Реализация только сегодня, при разрешении прошлых или будущих дат, здесь не вариант. Однако если вы хотите, чтобы завтра вы были min датой (гаснет сегодня и все прошлые даты), см. этот вопрос , чтобы увеличить today на один день.

Как и во всех других случаях, связанных с формами HTML, вы всегда должны проверять полевую серверную сторону независимо от того, как вы ограничиваете ее на стороне клиента.

88
задан Barnabe 10 April 2010 в 06:53
поделиться

2 ответа

.findAll() возвращает список всех найденных элементов, поэтому:

inputTag = soup.findAll(attrs={"name" : "stainfo"})

inputTag - это список (возможно, содержащий только один элемент). В зависимости от того, что именно вам нужно, вы должны либо сделать:

 output = inputTag[0]['value']

либо использовать метод .find(), который возвращает только один (первый) найденный элемент:

 inputTag = soup.find(attrs={"name": "stainfo"})
 output = inputTag['value']
122
ответ дан 24 November 2019 в 07:34
поделиться

Я использую это с Beautifulsoup 4.8.1 для получения значения всех атрибутов класса определенных элементов:

from bs4 import BeautifulSoup

html = "<td class='val1'/><td col='1'/><td class='val2' />"

bsoup = BeautifulSoup(html, 'html.parser')

for td in bsoup.find_all('td'):
    if td.has_attr('class'):
        print(td['class'][0])

Его важное, чтобы отметить, что ключ атрибута получает список, даже когда атрибут имеет только единственное значение.

0
ответ дан 24 November 2019 в 07:34
поделиться
Другие вопросы по тегам:

Похожие вопросы: