1

这可能是一个有点过于直接的问题。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()

但我最终再次出现在同一页面上。我也发布 value="Continue as Free User" 吗?我如何继续发布这两个数据。

一个工作代码会很有帮助。我正在努力,但还没有成功。

好的..在少数程序员提出的建议之后

我尝试使用如下代码

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)

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

于 2012-09-21T14:18:50.500 回答