Уведомления

Группа в Telegram: @pythonsu

#1 Апрель 4, 2013 14:56:17

Duck-Pagan
Зарегистрирован: 2012-05-02
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + grab

Здравствуйте.
Пытаюсь разобраться с такой проблемой:
в html-форме есть select:

<div id='top'>
<select name="student">
<option value="1">Один</option>
<option value="2">Два</option>
<option value="3">Три</option>
<option selected="" value=""> не выбрано </option>
</select>
</div>

При помощи grab, хочу получить
[(1,'Один'),(2,'Два'),(3,'Три'),('','не выбрано')]
.

Подскажите, можно ли как-то получить текстовую часть из такого запроса:
[(i.get('value'), i) for i in gInfo.xpath_list('//select//option')]
#возвращает:
[('1', <Element option at 0x2d569b0>), ('2', <Element option at 0x2d56b90>), ('3', <Element option at 0x2d5a4d0>), ('', <Element option at 0x2d5a950>)] 

Или предстоит склеивать:
gInfo.xpath_list('//select//option')
и разбитый:
gInfo.xpath_text('//*[@id="top"]').split()

Офлайн

#2 Апрель 4, 2013 14:59:11

s0rg
От:
Зарегистрирован: 2011-06-05
Сообщения: 777
Репутация: +  25  -
Профиль   Отправить e-mail  

Python + grab

a = ('1', <Element option at 0x2d569b0>)
b = (a[0], a[1].text)
Читаем про lxml

Или сразу:
[(i.get('value'), i.text) for i in gInfo.xpath_list('//select//option')]

Отредактировано s0rg (Апрель 4, 2013 15:00:36)

Офлайн

#3 Апрель 4, 2013 15:10:27

Duck-Pagan
Зарегистрирован: 2012-05-02
Сообщения: 19
Репутация: +  0  -
Профиль   Отправить e-mail  

Python + grab

Спасибо.

s0rg
Или сразу:
[(i.get('value'), i.text) for i in gInfo.xpath_list('//select//option')]
Интуитивно крутилось что-то такое.

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version