2015-04-30 57 views
3

我想使PayPal cURL登录,所以我需要身份验证值。我试图从HTML源获取身份验证值与此Python代码Python从输入元素与lxml xpath获取值

import requests 
import lxml.html 
import StringIO 
from xml.etree.ElementTree import ElementTree 
r = requests.get("https://paypal.com/cgi-bin/webscr?cmd=_login-run") 
login_page = r.text.encode('utf-8') #printing html source 
html = lxml.html.fromstring(login_page) #printing <Element html at 0x7f19cb242e$ 
auth = html.xpath('//input[@name="auth"]') #printing [<InputElement 7fb0971e9f1$ 
print auth 

,但上面的代码打印此[<InputElement 7fb0971e9f18 name='auth' type='hidden'>],所以,我怎么可以得到权威性值解码&#x2d; &#x2d; &#x2e;?输入部分看起来像这样

<input name="auth" type="hidden" value="ADPifNsidn&#x2d;P0G6WmiMMeJbjEhnhIvZCNg7Fk11NUxc0DyYWzrH&#x2d;xk5ydV&#x2e;85WCzy"> 

非常感谢你。

回答

3

如果您想检索该元素的属性auth使用

auth = html.xpath('//input[@name="auth"]/@value') 

没有必要什么解码,当LXML解析HTML实体自动和扩展,因此输出将是

$ python sample.py 
['AmmyYuqCDmZRcSs6MaQi2tKhzZiyAX0eSERKqTi3pLB5pdceB726lx7jhXU2MGDN6']