2014-05-23 36 views
1

我想使用python web脚本来显示一些html,暂停一秒钟,然后将表单数据发布到另一个将显示一些不同的html的python脚本。从python脚本获取新的web浏览器页面

script1.py:

print "Content-type: text/html;charset=utf-8\r\n\r\n" 
print "<html>" 
print "<body>" 
print "<p>Some temporary info" 
print "</body>" 
print "</html>" 

time.sleep(1) 

params = urllib.urlencode({'test': "test_info"}) 
response = urllib.urlopen("http://www.exampleurl.com/cgi-bin/script2.py", params) 
print response.read() 

当我运行该浏览器窗口同时显示来自SCRIPT1“一些临时信息”,并从SCRIPT2的HTML(即临时信息是不是暂时的)的HTML。我怎样才能让浏览器只用script2 html开始一个新页面,就好像我点击了一个真正的表单提交而不是用urllib伪造它呢?

编辑:正如哈克曼的建议,我已经使用客户端重定向尝试,如:

print "<meta http-equiv=\"refresh\" content=\"1;URL=http://www.exampleurl.com/cgi-bin/script2.py\">" 

这确实提供了script2.py新的浏览器页面,但我不能看到如何提供POST数据与此方法。

回答

0

您正在结束该HTML,然后尝试添加到它。

试试看看如果你把两个html文件放在一起,会发生什么,这是无效的。

您可能希望客户端请求页面本身。

您可能希望创建一个客户端重定向: http://www.w3.org/TR/WCAG20-TECHS/H76.html

+0

客户端重定向确实提供了一个新的浏览器页面,但是从我看到它不允许重定向使用POST数据。 – user3668592

+0

基本上你想创建一个代理,所以你重定向到你的服务器上的一个新页面,该页面提取第三方页面并显示它。 – h4ck3rm1k3

+0

对于我来说,我不清楚如何将POST数据(这是在script1.py中动态生成的)发送到调用script2.py的代理页面。 – user3668592