我想知道如何从像zippy share这样的网站上下载文件。我看到了这篇文章How to download in bash from zippyshare?,它展示了如何使用wget,并从浏览器手动添加cookie并将其添加到wget的头中。这很管用。但是我想使用python,获取cookie,然后执行wget,这样我就可以通过编程来完成这项工作(例如:抓取一堆下载链接)。在
我设计了这个hacky脚本来获取cookie并执行wget命令,但是看起来cookie并不好,因为我得到了302重定向:
import urllib2, os
class HeadRequest(urllib2.Request):
def get_method(self):
return "HEAD"
url = "http://www67.zippyshare.com/d/64003087/2432/Alex%20Henning%2c%20Laurie%20Webb%20-%20In%20Your%20Arms%20%28Joy%20Kitikonti%20Remix%29%20%5bquality-dance-music.com%5d.mp3"
referer = "http://www67.zippyshare.com/v/64003087/file.html"
response = urllib2.urlopen(HeadRequest(url))
headers = response.info()
jcookieString = headers['Set-Cookie'].split(';')[0] #[11:]
# print headers
print "jcookie string " + jcookieString
wgetString = "wget " + url + " --referer=" + referer + " --cookies=off --header \"Cookie: " + jcookieString + "\"" + "--user-agent=\"Mozilla/5.0 (Windows NT 6.0) Gecko/20100101 Firefox/14.0.1\""
os.system(wgetString)
我也尝试使用python的cookielib,但是得到了相同的302重定向行为。谢谢。在
编辑:这里的using requests是保存来自referer请求的cookie的代码,因为我正在使用会话来发出请求…但是仍然没有成功: 看着响应历史记录显示302重定向由于某种原因仍在发生。在
^{pr2}$
实际上,在没有其他选择的情况下,应该使用python内部的系统调用。使用请求库,如下所示:
^{1}$如果它不起作用,也许设置本身不适合您正在尝试的操作。我很困惑为什么在wget语句中都设置cookie和have cookies=off。在
相关问题 更多 >
编程相关推荐