【问题标题】:Curl POST in python or similar method在 python 或类似方法中卷曲 POST
【发布时间】:2012-09-21 14:16:23
【问题描述】:

这可能是一个有点过于直接的问题。 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 的东西。但我想用更简单的东西。有什么线索吗??

【问题讨论】:

  • 澄清一下,您成功获取了隐藏哈希的值,而您的问题是如何发送 HTTP POST 请求而不是 HTTP GET,对吗?
  • 是的,只是为了发帖……去看看别人的建议

标签: python curl post urllib2


【解决方案1】:

urllib2.urlopen(url,data=data)

【讨论】:

    【解决方案2】:

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

    response = urllib2.urlopen(url, data)
    

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

    【讨论】:

    • 好的。我尝试过 response = urllib2.urlopen(url, data)..same result..Same page return.. 还有另一个输入 ...如何发布此按钮并将哈希值一起发布?
    • 看到那个按钮上的namevalue 属性了吗?将这些添加到您的 values 字典中:{'hash': '3d0865fbb040e670', 'confirm': 'Continue as Free User'}
    • 我也试过了...请检查我的第二次尝试代码是否正常?我错过了什么!
    • @AbulHasnat:您的代码看起来不错;这是您试图愚弄接受您的帖子的网站,这就是问题所在。他们的脚本检测阻止您完成此操作。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-12
    • 2015-01-06
    • 2018-09-20
    • 2011-05-15
    • 2019-11-02
    • 2019-02-25
    相关资源
    最近更新 更多