2012-09-21 57 views
1

這可能有點太直接的問題。 Python新手用python或類似方法捲曲POST

我試圖從視頻網站(Putlocker)解析/刮取視頻鏈接。
http://www.putlocker.com/file/A189D40E3E612C50

的頁面出現最初與下面這段代碼或類似

<form method="post"> 
<input type="hidden" value="3d0865fbb040e670" name="hash"> 
<input name="confirm" type="submit" value="Continue as Free User" 
disabled="disabled" 
id="submitButton" class="confirm_button" style="width:190px;"> 
</form> 

值= 「3d0865fbb040e670」 更改每次...

Import urllib 
import urllib2 

url = 'http://www.putlocker.com/file/A189D40E3E612C50.' 
response = urllib2.urlopen(url) 
page = response.read() 

從這裏我覺得值= 「?」哈希

的那麼

url = 'http://www.putlocker.com/file/A189D40E3E612C50.' 
values = {'hash' : 3d0865fbb040e670} 
data = urllib.urlencode(values) 
response = urllib2.urlopen(url) 
page = response.read() 

但我結束了同一個頁面上一次。我是否會發布value =「以免費用戶身份繼續」? 如何繼續發佈兩個數據。

工作代碼會很有幫助。 我正在努力,但無濟於事。

Ok..after由幾個程序員

提出的建議,我試過的代碼像下面

url = 'http://www.putlocker.com/file/A189D40E3E612C50' 
response = urllib2.urlopen(url) 
html = response.read() 
r = re.search('value="([0-9a-f]+?)" name="hash"', html) 
session_hash = r.group(1) 
print session_hash 
form_values = {} 
form_values['hash'] = session_hash 
form_values['confirm'] = 'Continue as Free User' 
data = urllib.urlencode(form_values) 
response = urllib2.urlopen(url, data=data) 
html = response.read() 
print html 

所以我有相同的頁面再次返回again..What我錯了這裏做什麼!我見過一種叫做pycurl的東西,但我想用一些簡單的東西。任何線索?

+0

只是爲了澄清,你是成功地抓住隱藏哈希的價值,你的問題是如何發送HTTP POST請求,而不是HTTP GET,是否正確? – chucksmash

+0

是的,只是發佈...要檢查他人的建議 –

回答

1

urllib2.urlopen(url,data=data)

1

你需要給你的編碼values參數來urlopen命令:

response = urllib2.urlopen(url, data) 

否則你將創造另一個GET請求,而不是發佈。

+0

好的。我已經嘗試了response = urllib2.urlopen(url,data)..相同的結果..同樣的結果..同樣的頁面返回.. 還有另外一個輸入 ...如何發佈此按鈕並將散列貼在一起? –

+0

請參閱該按鈕上的'name'和'value'屬性?將這些添加到您的'values'字典中:'{'hash':'3d0865fbb040e670','確認':'以自由用戶身份繼續'}。 –

+0

我也試過了...請檢查我的第二次嘗試代碼是否可以或不?我錯過了什麼! –