Вот форма. Одна и та же точная форма встречается в источнике дважды.
<form method="POST" action="/login/?tok=sess">
<input type="text" id="usern" name="username" value="" placeholder="Username"/>
<input type="password" id="passw" name="password" placeholder="Password"/>
<input type="hidden" name="ses_token" value="token"/>
<input id="login" type="submit" name="login" value="Log"/>
</form>
Я получаю атрибут «действие» с этим кодом py
import lxml.html
tree = lxml.html.fromstring(pagesource)
print tree.xpath('//action')
raw_input()
Поскольку есть две формы, он печатает оба атрибута
['/login/?session=sess', '/login/?session=sess']
Как я могу заставить его печатать только один? Мне нужен только один, так как они одинаковой формы.
у меня тоже второй вопрос
как я могу получить значение токена? Я говорю об этой строке:
<input type="hidden" name="ses_token" value="token"/>
Я пробую аналогичный код,
import lxml.html
tree = lxml.html.fromstring(pagesource)
print tree.xpath('//value')
raw_input()
Однако, поскольку есть более одного атрибута с именем, он будет распечатывать
['', 'token', 'Log In', '', 'token', 'Log In'] # or something close to that
Как я могу получить только токен? И только один?
Есть лучший способ сделать это?