1

これは少し直接的な質問かもしれません。Pythonは初めて

ビデオWebサイト(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>

value="3d0865fbb040e670"毎回変更...

Import urllib
import urllib2

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

ここからValue="?"を見つけます ハッシュの

それから

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

しかし、私は再び同じページに行き着きます。value = "Continue as Free User"も投稿しますか?両方のデータを投稿するにはどうすればよいですか。

実用的なコードが役立つでしょう。私は一生懸命努力していますが、まだ役に立ちません。

OK..少数のプログラマーによる提案の後

以下のようなコードで試してみました

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

だから私は再び同じページで戻ってきます..私はここで何が間違っているのですか!pycurlと呼ばれるものを見たことがありますが、もっとシンプルなものを使いたいです。何か手がかりはありますか?

4

2 に答える 2

1

urllib2.urlopen(url,data=data)

于 2012-09-21T14:17:26.787 に答える
1

valuesエンコードされたパラメーターをurlopenコマンドに指定する必要があります。

response = urllib2.urlopen(url, data)

それ以外の場合は、POSTの代わりに別のGETリクエストを作成します。

于 2012-09-21T14:18:50.500 に答える