我打算从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并显示关键错误。
所以我的问题是,如何在不下载后台视频的情况下打印实际视频的网址?
答案 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)