2011-08-22 54 views
1

我想打開一個頁面,然後找到一個數字並乘以另一個隨機數字,然後將其提交到頁面因此,我正在做的是將頁面保存爲html,然後找到2個數字相乘它然後發送它作爲一個職位,但Python urllib2發送帖子

post = urllib.urlencode({'answer': goal, 'submit': 'Submit+Answer'}) 
req2 = urllib2.Request("example", None, headers) 
response = urllib2.urlopen(req, post) #this causes it not to work it opens the page a second time 

這使得連接第二個時間,因此發送的隨機數是錯誤的,因爲它使一個新的隨機數,所以我怎麼能發送POST請求一個網頁,我已經打開而不重新打開它?

+0

HTTP協議是無狀態的。每個HTTP GET和HTTP POST都是一個單獨的請求。我相信你的設計/思考失敗了。如果你想要有狀態的協議,你需要使用cookies和會話。 –

+0

我有Cookie讓我登錄我沒有發佈整個腳本 – milespowers

回答

0

我不相信urllib支持保持連接打開,如described here

看起來你必須發送一個引用到原來的計算回你的文章。或者在答案的同一時間將數據發回,因此服務器有一些匹配問題和答案的方法。

+0

我看到我可以用httplib做到這一點? – milespowers

4

你可能想要使用類似mechanize的東西,它可以啓用Python中的狀態網頁瀏覽功能。您可以使用它來加載URL,從頁面讀取值,執行乘法,將該數字放在頁面上的表單中,然後提交。

這聽起來像你想要做的? This page提供了一些關於如何使用mechanize填寫表格的信息。

+0

是的,非常感謝 – milespowers

+1

如果回答你的問題,不要忘了標記答案是正確的。 –