Python制作CSDN免积分下载器


Posted in Python onMarch 10, 2015

CSDN免积分下载 你懂的。
1、输入资源地址如:http://download.csdn.net/download/gengqkun/4127808
2、输入验证码
3、点击下载,会弹出浏览器下载。
注:成功率在70-80% ,界面很丑,请将就着用。

#-*-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()

演示图片

Python制作CSDN免积分下载器 

以上就是本文的全部内容了,希望大家能够喜欢。

Python 相关文章推荐
Python入门之三角函数atan2()函数详解
Nov 08 Python
Python 12306抢火车票脚本
Feb 07 Python
基于python实现学生管理系统
Oct 17 Python
解决django中ModelForm多表单组合的问题
Jul 18 Python
python实现电子书翻页小程序
Jul 23 Python
Python从文件中读取指定的行以及在文件指定位置写入
Sep 06 Python
Python实现隐马尔可夫模型的前向后向算法的示例代码
Dec 31 Python
opencv python Canny边缘提取实现过程解析
Feb 03 Python
使用Python 自动生成 Word 文档的教程
Feb 13 Python
Python3标准库之dbm UNIX键-值数据库问题
Mar 24 Python
用python发送微信消息
Dec 21 Python
python基础之文件处理知识总结
May 23 Python
Python Tkinter GUI编程入门介绍
Mar 10 #Python
Python格式化css文件的方法
Mar 10 #Python
Python将xml和xsl转换为html的方法
Mar 10 #Python
Python写的Tkinter程序屏幕居中方法
Mar 10 #Python
Python生成随机密码
Mar 10 #Python
Python获取单个程序CPU使用情况趋势图
Mar 10 #Python
Python使用xlrd读取Excel格式文件的方法
Mar 10 #Python
You might like
thinkphp的静态缓存用法分析
2014/11/29 PHP
关于laravel 子查询 &amp; join的使用
2019/10/16 PHP
js形成页面的一种遮罩效果实例代码
2014/01/04 Javascript
jquery退出each循环的写法
2014/02/26 Javascript
一个仿微博登陆邮箱提示框js开发案例
2016/07/28 Javascript
fullpage.js全屏滚动插件使用实例
2016/09/06 Javascript
Vue2.x中的父子组件相互通信的实现方法
2017/05/02 Javascript
easyui combogrid实现本地模糊搜索过滤多列
2017/05/13 Javascript
微信小程序开发之实现自定义Toast弹框
2017/06/08 Javascript
vue实现多级菜单效果
2019/10/19 Javascript
在Vue项目中使用Typescript的实现
2019/12/19 Javascript
微信小程序获取当前时间及星期几的实例代码
2020/09/20 Javascript
element-ui中dialog弹窗关闭按钮失效的解决
2020/09/22 Javascript
[02:38]DOTA2亚洲邀请赛 IG战队巡礼
2015/02/03 DOTA
python定时采集摄像头图像上传ftp服务器功能实现
2013/12/23 Python
Python fileinput模块使用介绍
2014/11/30 Python
python使用PIL模块实现给图片打水印的方法
2015/05/22 Python
pandas创建新Dataframe并添加多行的实例
2018/04/08 Python
使用Python监控文件内容变化代码实例
2018/06/04 Python
Python中函数参数匹配模型详解
2019/06/09 Python
Python数据可视化 pyecharts实现各种统计图表过程详解
2019/08/15 Python
PyQt5连接MySQL及QMYSQL driver not loaded错误解决
2020/04/29 Python
Python中return函数返回值实例用法
2020/11/19 Python
利用Python将多张图片合成视频的实现
2020/11/23 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
python 实现波浪滤镜特效
2020/12/02 Python
美体小铺奥地利官方网站:The Body Shop奥地利
2019/04/11 全球购物
新加坡网上美容店:Hermo新加坡
2019/06/19 全球购物
澳洲Chemist Direct药房中文网:澳洲大型线上直邮药房
2019/11/04 全球购物
巴西最大的巴士票务门户:Quero Passagem
2020/11/21 全球购物
房地产广告词大全
2014/03/19 职场文书
学校运动会广播稿
2014/10/11 职场文书
物价局领导班子四风问题整改措施
2014/10/26 职场文书
入党自荐书范文
2015/03/05 职场文书
反邪教教育心得体会
2016/01/15 职场文书
Pandas 稀疏数据结构的实现
2021/07/25 Python