我想在网站上自动填写表单,其中包含某些参数的信息,这些参数将根据我输入的参数返回产品。我尝试在 python 中使用 mechanize,但它不支持 javascript,而且似乎为了浏览整个填写参数的过程,需要按下一些看起来像 javascript 对象的按钮。例如引导选择按钮:
<a onclick="_gaq.push(['_trackEvent', 'Navigation Menu', 'Click', 'Guided Selection Link']);" id="ctl00_NavigationMenu_ConfigureLink" href="javascript:__doPostBack('ctl00$NavigationMenu$ConfigureLink','')">Guided Selection</a></li>
我也尝试使用 selenium,但我不想创建浏览器的新实例。任何基于python的建议?也许jython?非常感谢!
最佳答案
我的建议是使用 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 中,您可以获得
url
和 values
从控制台选项卡下。如果您正在进行自动表单发现,这可能不起作用。
关于javascript - 在python中填写表单并按下javascript按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426822/