2014-05-23 35 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