在python中填写并按下javascript按钮

时间:2013-07-02 13:24:43

标签: javascript python selenium mechanize jython

我想在网站上自动填写表单,其中包含某些参数的信息,这些参数将根据我输入的参数返回产品。我尝试在python中使用mechanize,但它不支持javascript,似乎为了导航填充参数的整个过程需要按下一些看起来像javascript对象的按钮。例如,引导选择按钮:

    <a onclick="_gaq.push([&#39;_trackEvent&#39;, &#39;Navigation Menu&#39;, &#39;Click&#39;, &#39;Guided Selection Link&#39;]);" id="ctl00_NavigationMenu_ConfigureLink" href="javascript:__doPostBack(&#39;ctl00$NavigationMenu$ConfigureLink&#39;,&#39;&#39;)">Guided Selection</a></li>

我也尝试过使用selenium,但我不想创建一个新的浏览器实例。任何基于python的建议?也许是jython?非常感谢!

1 个答案:

答案 0 :(得分:0)

我的建议是使用像firebug这样的工具捕获表单信息。然后通过Python“重放”请求(无论是GET还是POST)。这是POST请求的片段。

import urllib
import urllib2

url = 'http://www.someserver.com/cgi-bin/register.cgi'
values = {'name' : 'Michael Foord',
          'location' : 'Northampton',
          'language' : 'Python' }

data = urllib.urlencode(values)
req = urllib2.Request(url, data)
response = urllib2.urlopen(req)
the_page = response.read()

在fire bug中,您可以从控制台标签下获取urlvalues

enter image description here

如果您正在进行自动表单发现,这可能不起作用。