fumeflow 发表于 2013-9-15 12:50

简单python问题 怎么用cookie登陆coursera

本帖最后由 fumeflow 于 2013-9-15 13:09 编辑

问题更新:
刚刚换个浏览器试了下 如果没cookie时 url_test地址会跳转到登陆页面 那肯定下不到了登陆页面是 https://accounts.coursera.org/signin/

其实之前就尝试过想登陆进去 但不会弄 以下是代码 求修改:

#!/usr/bin/env python3

import urllib
import http.cookiejar

url = "https://accounts.coursera.org/signin/"
url_login = "https://accounts.coursera.org/#account/signedin"
url_lesson = "https://class.coursera.org/linearprogramming-001/lecture/index/"

postdata = {
    'signin-email':'fumeflow@gmail.com',
    'signin-password':'fumeflow'
}

cookieProc = urllib.request.HTTPCookieProcessor( http.cookiejar.CookieJar() )

opener = urllib.request.build_opener(cookieProc)

opener.addheaders = [('User-agent','Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)')]

params = urllib.parse.urlencode(postdata)

params = params.encode('utf-8')

opener.open(url_lesson,params)

op = opener.open(url_lesson).read().decode("utf-8")

print(op)
--------------------以下是老问题---------------------------------
具体需求是这样的 鄙人经常下载coursera上的视频教程
但该网站的教程 srt字幕和MP4文件 每个小节都要单独点击 点击量不小
用迅雷可以批量下载文件 但文件名都是download.mp4
所以想用python写个程序 批量下载

url_test = "https://class.coursera.org/metadata-001/lecture/download.mp4?lecture_id=7"

url_true = "https://d28rh4a8wq0iu5.cloudfront.net/metadata/recoded_videos/1-3_OSXMavericks.fb99681489c36236bd52e12ec52257df.mp4?response-content-type=application%2Foctet-stream&response-content-disposition=attachment%3B%20filename%3D%221%20-%203%20-%201-3%20OSX%20Mavericks%20-%20413.mp4%22"

如上所示 url_test是网页内部嵌入的可供点击的下载链接
如果用浏览器点击 会自动跳转成url_true 并且在python里用url_true 可以正常下载
但如何用python通过url_test的链接 自动获取url_true呢?(方法越简单越好 初学python 不过有一些c和java基础)



might 发表于 2013-9-15 12:56

台球论坛网友 发表于 2013-9-15 12:56

fumeflow 发表于 2013-9-15 13:06

问题更新下 求高手点拨

zxc111 发表于 2013-9-15 14:18

楼主何苦自己写。。。
http://mooc.guokr.com/post/427070/Coursera%E7%BD%91%E7%AB%99%E8%AF%BE%E7%A8%8B%E6%89%B9%E9%87%8F%E4%B8%8B%E8%BD%BD%E7%A8%8B%E5%BA%8F/

而且竟然是py3

fumeflow 发表于 2013-9-15 15:03

zxc111 发表于 2013-9-15 14:18
楼主何苦自己写。。。
http://mooc.guokr.com/post/427070/Coursera%E7%BD%91%E7%AB%99%E8%AF%BE%E7%A8%8B% ...

多谢提高工具

ps 其实我也想学python

ostcollector 发表于 2013-9-15 17:19

zxc111 发表于 2013-9-15 14:18
楼主何苦自己写。。。
http://mooc.guokr.com/post/427070/Coursera%E7%BD%91%E7%AB%99%E8%AF%BE%E7%A8%8B% ...

表示我只会py3……因为gentoo默认py3

fumeflow 发表于 2013-9-15 21:50

本帖最后由 fumeflow 于 2013-9-15 21:54 编辑

johentai 发表于 2013-9-15 20:07
一般不是2.7吗。。。
初学 寻思直接学最新的

莫非现在2.7是主流?
PS. 用DownThemAll下载了 比那个第三方工具更方便些 回头学习下别人的代码了

EraserKing 发表于 2013-9-15 23:53

换httplib2,然后存/调cookies,再soap一下(好像更复杂了)

----发送自 LGE Nexus 4,Android 4.3

風舞雪 发表于 2013-9-16 01:07

我用mechanize 基本都能登
但是如果页面里面显示是JS 就没办法啦

bgbr 发表于 2013-9-17 05:35

写新东西又不用2的库,为什么不能用3
页: [1]
查看完整版本: 简单python问题 怎么用cookie登陆coursera