当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Python  » 其他
分享到: 
收藏 +0
7
CSDN免积分下载 你懂的。
1、输入资源地址如:http://download.csdn.net/download/gengqkun/4127808 
2、输入验证码
3、点击下载,会弹出浏览器下载。
注:成功率在70-80% ,由于ocshina有限制上传大小,所以csdn.rar被分割成了两部分,需要两个都下载才能使用,界面很丑,请将就着用。
标签: Python Tkinter PIL

代码片段(4) [全屏查看所有代码]

1. [代码]CSDN下载器,你懂的     跳至 [1] [全屏预览]

#-*-coding:utf-8-*-
#python3.3.5
import urllib.parse,urllib.request,http.cookiejar,io,webbrowser
import tkinter as tk
from tkinter import *
from tkinter.ttk import *
from urllib.request import urlopen
from PIL import Image, ImageTk
global root
#设置cookie  
cookie = http.cookiejar.CookieJar() 
cookieProc = urllib.request.HTTPCookieProcessor(cookie) 
opener = urllib.request.build_opener(cookieProc) 
urllib.request.install_opener(opener) 
#根据路径和POST内容来提交表单
def getUrlRequest(iUrl,iStrPostData): 
    postdata = urllib.parse.urlencode(iStrPostData) 
    postdata = postdata.encode(encoding='UTF8') 
    header = {'User-Agent':'Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)'} 
    req= urllib.request.Request( 
               url = iUrl, 
               data = postdata, 
               headers = header)
    data = urllib.request.urlopen(req).read()
    try:
        data = data.decode('utf-8')
    except:
        data = data.decode('gbk', 'ignore')
    return data
 
#获取验证码图片
def getCodeImg(): 
    urlCode='http://csdn.juming.com/code.htm'
    image_bytes = urlopen(urlCode).read()
    # internal data file
    data_stream = io.BytesIO(image_bytes)
    # open as a PIL image object
    pil_image = Image.open(data_stream)
    tk_image = ImageTk.PhotoImage(pil_image)
    return tk_image 

#构建界面
def createGui(msg=''):
    global root
    root = tk.Tk() 
    root.title("CSDN免积分下载器 v0.1")
    root.resizable(False, False)   #禁止修改窗口大小
    root.geometry('+400+250')  #屏幕位置
    #-------------------------------------------
    tk_image = getCodeImg()
    # put the image on a typical widget 
    frm_top_label = tk.Label(root,compound = 'top',image=tk_image,text="验证码图片",fg="blue",bg="brown",font=('Tempus Sans ITC',20)) 
    frm_top_label.grid(row = 0, column = 0, padx = 15, pady = 2) 
    #-------------------------------------------
    frm_bottom = tk.LabelFrame(root)
    frm_bottom.grid(row = 1, column = 0, padx = 15, pady = 2)

    frm_bottom_label_0 = tk.Label(frm_bottom,text="下载地址:", font=('Tempus Sans ITC',15))
    frm_bottom_label_0.grid(row = 0, column = 0, padx = 5, pady = 2,sticky = "e") #控件右对齐
    
    frm_bottom_label_1 = tk.Label(frm_bottom,text="  验证码:", font=('Tempus Sans ITC',15))
    frm_bottom_label_1.grid(row = 1, column = 0, padx = 5, pady = 2,sticky = "e")

    frm_bottom_entry_var_0 = StringVar()
    frm_bottom_entry_0 = tk.Entry(frm_bottom,textvariable=frm_bottom_entry_var_0)
    frm_bottom_entry_0.grid(row = 0, column = 1, padx = 15, pady = 2)

    frm_bottom_entry_var_1 = StringVar()
    frm_bottom_entry_1 = tk.Entry(frm_bottom,textvariable=frm_bottom_entry_var_1) #设置密码输入框,熟悉show
    frm_bottom_entry_1.grid(row = 1, column = 1, padx = 15, pady = 2)

    frm_bottom_btn_0 = tk.Button(frm_bottom,text="下   载",relief=RIDGE,bd=4,width=10, font=('Tempus Sans ITC',12),command=lambda:downloadSource(frm_bottom_entry_var_0,frm_bottom_entry_var_1,frm_top_label,frm_foot_label))
    frm_bottom_btn_0.grid(row = 3, column = 1, padx = 15, pady = 2,sticky = "w")
    
    frm_foot_label = tk.Label(root,text=msg ,font=('Tempus Sans ITC',10))
    frm_foot_label.grid(row = 3, column = 0, padx = 15, pady = 2)
    
    root.mainloop()  

#获取下载资源地址   
def getSourceUrl(code,ziyuandz):
    #资源信息  
    strLoginInfo = {'csdn_zh': '用户名',
                    'csdn_mm': '密码',
                    're_yzm':code,
                    'ziyuandz':ziyuandz #'http://download.csdn.net/detail/shinian1987/8430743' #
                    }
    #下载资源地址
    urlLogin='http://csdn.juming.com/index.htm'
    returnHtml = str(getUrlRequest(urlLogin,strLoginInfo))
    a = returnHtml.find('电信下载地址:<strong>') + 15
    b = returnHtml.find('</strong><br>网通下载地址:')
    durl = returnHtml[a:b]
    return durl

#下载资源
def downloadSource(frm_bottom_entry_var_0,frm_bottom_entry_var_1,frm_top_label,frm_foot_label):
    try:
        ziyuandz = frm_bottom_entry_var_0.get()
        code = frm_bottom_entry_var_1.get()
        durl = getSourceUrl(code,ziyuandz) 
        print('资源地址:'+ durl) 
        reMsg = "已经打开浏览器,请下载..."
        yzm = durl.find("验证码")
        #yzm += durl.find("验证码验证错误")
        #yzm += durl.find("验证码输入不正确") 
        fs = durl.find("封杀本工具特意加")
        gs = durl.find("正确的格式如")
        jf = durl.find("成功获取到0点积分") 
        xzzy = durl.find("http:") 
        if fs > 0:
            reMsg = "该资源被封杀,请稍后再下载..." 
        elif code=='':
            reMsg = "验证码不能为空..."
        elif ziyuandz=='': 
            reMsg = "下载地址不能为空..." 
        elif gs > 0: 
            reMsg = "资源地址错误,请重新输入..."
        elif yzm > 0: 
            reMsg = "验证码输入错误..."
        elif jf > 0: 
            reMsg = "积分不足,资源无法下载..." 
        elif xzzy >= 0:  
            webbrowser.open(durl, new=0, autoraise=True)
        else: 
            reMsg = "资源错误或没有找到下载资源..."
        #print(xzzy) 
        frm_foot_label['text'] = reMsg 
        tk_image = getCodeImg()
        frm_top_label.configure(image = tk_image)
        frm_top_label.image= tk_image
    except:
        root.destroy()
        createGui('程序错误,请重新下载...')
#MAIN
createGui() 

2. [图片] {152882BC-6E3C-4033-9015-6997BC8B1631}.jpg    

3. [文件] csdn.part1.rar ~ 3MB     下载(10307)     [全屏预览]

4. [文件] csdn.part2.rar ~ 3MB     下载(6829)     [全屏预览]



开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(40)

  • 1楼:懒羊羊和灰太狼的故事 发表于 2015-02-27 11:07 回复此评论
    支持一个
  • 2楼:我姓王丶 发表于 2015-02-27 11:21 回复此评论
    下载不了啊。
  • 3楼:优特品 发表于 2015-02-27 12:19 回复此评论

    引用来自“叫我-8楼”的评论

    下载不了啊。
    不知道哪部分下载不了? 由于OSCHINA有现在上传大小,所以把csdn.rar分割成了两部分,请两个都下载。
  • 4楼:我姓王丶 发表于 2015-02-27 13:45 回复此评论

    引用来自“叫我-8楼”的评论

    下载不了啊。

    引用来自“优特品”的评论

    不知道哪部分下载不了? 由于OSCHINA有现在上传大小,所以把csdn.rar分割成了两部分,请两个都下载。
    然后呢?和在一起?
  • 5楼:little_kid 发表于 2015-02-27 15:37 回复此评论
    秘密在这里:代码第89行
    http://csdn.juming.com/index.htm
  • 6楼:19492049 发表于 2015-02-27 21:01 回复此评论
    积分不足,资源无法下载...
  • 7楼:ab0ba 发表于 2015-02-28 09:18 回复此评论
    LZ秀了这么多代码,结果 积分不足,资源无法下载...
  • 8楼:xiaolei123 发表于 2015-02-28 09:20 回复此评论
    CSDN好卡啊、
  • 9楼:小99 发表于 2015-02-28 09:45 回复此评论
    积分不足,资源无法下载...
  • 10楼:小99 发表于 2015-02-28 09:47 回复此评论
    这是免登录下载,不是免积分下载啊
  • 11楼:LiuGangQiang 发表于 2015-02-28 09:50 回复此评论
    我去 你是坑货呀
  • 12楼:优特品 发表于 2015-02-28 10:41 回复此评论
    工具原理:本工具并非利用Csdn漏洞,而是采用:1.登陆csdn帐户 --> 2.通过正规途径赚取积分 --> 3.下载资源

    以上为网页版的原理,最好是使用源码用自己的账户。附件为我自己的账户登陆,过于频繁的下载,可能无法通过正规途径赚取积分(CSDN赚积分是有时间和条件限制的),所以,请隔段时间再下载,或用自己的账户下载。
    注:本人非网页版人员,只是把网页版改成客户端。

  • 13楼:stevenliu 发表于 2015-02-28 11:21 回复此评论
    核心代码 http://csdn.juming.com/index.htm 就这一句话
  • 14楼:Archer2ee 发表于 2015-03-01 13:53 回复此评论
    如何生成exe的?
  • 15楼:优特品 发表于 2015-03-01 16:35 回复此评论

    引用来自“Archer2ee”的评论

    如何生成exe的?
    移步这里有讨论 python生成exe @叫我-8楼
  • 16楼:Archer2ee 发表于 2015-03-01 18:19 回复此评论

    引用来自“优特品”的评论

    引用来自“Archer2ee”的评论

    如何生成exe的?
    移步这里有讨论 python生成exe @叫我-8楼
    嗯,已经知道啦。谢谢。
  • 17楼:rom1c丶 发表于 2015-03-02 13:50 回复此评论
    我也是笑了
  • 18楼:CNHONKER07 发表于 2015-03-02 14:09 回复此评论
    不错。。方便多了 。。。。膜拜
  • 19楼:yangdong2014 发表于 2015-03-02 16:10 回复此评论
    卡了半天,然后提示积分不够。呵呵。
  • 20楼:Hat_AMD 发表于 2015-03-02 20:02 回复此评论

    引用来自“little_kid”的评论

    秘密在这里:代码第89行
    http://csdn.juming.com/index.htm
    正解!!!
开源从代码分享开始 分享代码
优特品的其它代码 全部(5)...