找回密码
 立即注册
搜索
查看: 2774|回复: 10

[软件] 简单python问题 怎么用cookie登陆coursera

[复制链接]
     
发表于 2013-9-15 12:50 | 显示全部楼层 |阅读模式
本帖最后由 fumeflow 于 2013-9-15 13:09 编辑

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

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

  1. #!/usr/bin/env python3

  2. import urllib
  3. import http.cookiejar

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

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

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

  12. opener = urllib.request.build_opener(cookieProc)

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

  14. params = urllib.parse.urlencode(postdata)

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

  16. opener.open(url_lesson,params)

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

  18. 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基础)



回复

使用道具 举报

头像被屏蔽
发表于 2013-9-15 12:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

头像被屏蔽
     
发表于 2013-9-15 12:56 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

     
 楼主| 发表于 2013-9-15 13:06 | 显示全部楼层
问题更新下 求高手点拨
回复

使用道具 举报

     
发表于 2013-9-15 14:18 | 显示全部楼层
楼主何苦自己写。。。
http://mooc.guokr.com/post/42707 ... %E7%A8%8B%E5%BA%8F/

而且竟然是py3
回复

使用道具 举报

     
 楼主| 发表于 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
回复

使用道具 举报

发表于 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
回复

使用道具 举报

     
 楼主| 发表于 2013-9-15 21:50 | 显示全部楼层
本帖最后由 fumeflow 于 2013-9-15 21:54 编辑
johentai 发表于 2013-9-15 20:07
一般不是2.7吗。。。

初学 寻思直接学最新的

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

使用道具 举报

     
发表于 2013-9-15 23:53 来自手机 | 显示全部楼层
换httplib2,然后存/调cookies,再soap一下(好像更复杂了)

----发送自 LGE Nexus 4,Android 4.3来自: Android客户端
回复

使用道具 举报

     
发表于 2013-9-16 01:07 | 显示全部楼层
我用mechanize 基本都能登
但是如果页面里面显示是JS 就没办法啦
回复

使用道具 举报

发表于 2013-9-17 05:35 | 显示全部楼层
写新东西又不用2的库,为什么不能用3
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|上海互联网违法和不良信息举报中心|网上有害信息举报专区|962110 反电信诈骗|举报电话 021-62035905|Stage1st ( 沪ICP备13020230号-1|沪公网安备 31010702007642号 )

GMT+8, 2025-9-10 18:41 , Processed in 0.077394 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表