javascript - 在python中填写表单并按下javascript按钮

标签 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?非常感谢!

最佳答案

我的建议是使用 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

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

关于javascript - 在python中填写表单并按下javascript按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17426822/

相关文章:

javascript - 在表单上跳转到页面顶部提交到新页面

Python - Pandas - groupby 和 "agg"- 当组包含 nan 时将聚合设置为 nan

python - 无法在 ubuntu 18.04 中将 python 程序作为服务运行

测试:如何处理不适用于一次测试的设置逻辑?

javascript - 从 Facebook JS API、问题或功能获取电子邮件?

javascript - gruntjs 不能在 sass 上正常运行

javascript - 在 HTTP 仍在进行时进行过滤 Angular

python - Matplotlib 和 Latex Beamer : Correct size

python - selenium IDE 命令 'openWindow' 是否有等效的 selenium python webdriver 命令?

python-2.7 - 未知错误 : call function result missing 'value' for Selenium Send Keys even after chromedriver upgrade