在python或类似的方法中卷曲POST

时间:2012-09-21 14:16:24

标签: python curl post urllib2

这可能是一个有点太直接的问题。 Python新手

我正在尝试从视频网站(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()

但我又在同一页上结束了。我是否也发布了值=“继续作为免费用户”? 如何发布这两个数据。

工作代码会有所帮助。 我努力但却无济于事。

好的......之后很少有程序员提出建议

我尝试使用下面的代码

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的东西。但是我想用一些简单的东西......任何线索??

2 个答案:

答案 0 :(得分:1)

urllib2.urlopen(url,data=data)

答案 1 :(得分:1)

您需要将编码的values参数提供给urlopen命令:

response = urllib2.urlopen(url, data)

否则您将创建另一个GET请求而不是POST。