如何在不下载视频内容的情况下从Kwik网站获取POST标头?

时间:2019-07-20 07:51:26

标签: python python-3.x python-requests http-post video-streaming

我打算从Kwik网站上找到视频的链接。 Kwik服务器仅在适当站点引用时显示视频,因此我找到了一个代码并将其修改为以下代码:

import requests
import re
down_url='http://kwik.cx/f/DsZh1AuNVGWF'

s=requests.Session()

parts_re = re.compile(r'action=\"([^"]+)\".*value=\"([^"]+)\".*Click Here to Download',re.DOTALL)
kwik_text=s.get(down_url,headers={'referer':down_url}).text

post_url,token=parts_re.search(kwik_text).group(1,2)

url=s.post(post_url,data={'_token':token},headers={'referer':down_url},allow_redirects='False').url
print(url)

我运行此代码时,脚本使用了大约150 mb(即视频大小)大约mb,然后显示了链接。

同样,我在某人的代码中发现视频的网址位于s.post(post_url,data={'_token':token},headers={'referer':down_url},allow_redirects='False').header['Location'],即使我尝试了该脚本,该脚本仍使用〜150 mb并显示关键错误。

所以我的问题是,如何在不下载后台视频的情况下打印实际视频的网址?

1 个答案:

答案 0 :(得分:1)

在处理了代码之后,似乎网站发送了重定向请求

send: b'_token=ZnuawawUSe1pVvk7iPGi4dvqVEsLe0jWzrFbT3SC'
reply: 'HTTP/1.1 302 Found\r\n'

所以我的代码allow_redirects = 'False'中出现错误,实际上应该是一个allow_redirects = False这样的布尔值,现在可以正常工作了。 最终代码为:

import requests
import re
down_url='http://kwik.cx/f/DsZh1AuNVGWF'

s=requests.Session()

parts_re = re.compile(r'action=\"([^"]+)\".*value=\"([^"]+)\".*Click Here to Download',re.DOTALL)
kwik_text=s.get(down_url,headers={'referer':down_url}).text

post_url,token=parts_re.search(kwik_text).group(1,2)

url=s.post(post_url,data={'_token':token},headers={'referer':down_url},allow_redirects=False).headers['location']
print(url)