python 登陆天津理工教务处 选课

import urllib
import sys
s = "许莹莹"
print urllib.quote(s.decode(sys.stdin.encoding).encode('utf8'))
print urllib.quote(s.decode(sys.stdin.encoding).encode('gbk'))
print urllib.unquote("%E8%AE%B8%E8%8E%B9%E8%8E%B9")
print urllib.unquote("%D0%ED%D3%A8%D3%A8")
上面代码是用来utf8,gbk编码和解码的


代码如下以后再注释:

#!/usr/local/bin/python3.2
# -*- coding: cp936 -*-
import urllib2
import urllib
import urlparse
import io,os,sys
import cookielib

from xml.etree import ElementTree as ET
import sys
reload(sys)
sys.setdefaultencoding('utf8')
def LogIn():
    #cookies
    cookies = urllib2.HTTPCookieProcessor()
    opener = urllib2.build_opener(cookies)
    urllib2.install_opener(opener)

    postdata={"loginType":"2","username":LOGIN,"name":LOGIN,"jwydm":"","password":PASSWD,"pswd":PASSWD,"jwypswd":"","image.x":"27","image.y":"10"}
     login = urllib2.urlopen(URL,urllib.urlencode(postdata))

def xuanke(daima,banhao,mytype):
    URL = "http://59.67.148.66/selection/xuanke/doing/xkround1.asp"
    postdata ={"txtKcdm":daima,"txtJxbh":banhao,"ddlczlb":mytype,"Submit":"提交"}
    #txtKcdm=0667066&txtJxbh=2&ddlczlb=1&Submit=提交
    print urllib.urlencode(postdata)
    print urllib.urlencode({"Submit":"提交"})
    #try :
    f = urllib2.Request(URL,urllib.urlencode(postdata))
    req = urllib2.urlopen(URL,urllib.urlencode(postdata))
    #print req
    #f = urllib2.Request(URL)
    #except :
    #print "NO"
        
    #mdir=sys.path[0]+'/'
    #file = open(mdir+"tt.html",'w')
    #file.write(f.read())
    #file.close()
    
def ask(URL):
    #web request
    req=urllib2.Request(URL.strip())
    f=urllib2.urlopen(URL)

    s=f.read()
# s=s.decode('utf8','ignore')
    #print dir(f)
    #print f.headers
    mdir=sys.path[0]+'/'
    file=open(mdir+'admin5.html','w')
    file.write(s)
    file.close()
    print "hello"


LOGIN = ""
PASSWD =""
cookiefile = './cookies.dat'
URL = "http://59.67.148.66/index.asp"
# cookie
LogIn()
#ask(URL)
#ask("http://59.67.148.66/score/xsywcjcy.asp")
Downphoto(2010)
#myread()

#xuanke("0667066","2","3")
#ask("http://59.67.148.66/selection/xuanke/doing/xkround1.asp")
#print "yes"


def Downphoto(name):
    beg = name * 10000+2741
    end = beg + 9999
    mdir=sys.path[0]+'/'
    for i in range(beg+1,end):
        temp = str(i)+".jpg"
        print temp
        try:
            req = urllib2.Request("http://59.67.148.66/cet46/photo/apply/"+temp)
            f =  urllib2.urlopen(req)
            file = open(mdir+'/aa/'+temp,'wb')
            file.write(f.read())
            file.close()
        except :
            print str(i)+"不存在"
def myread():
    mdir=sys.path[0]+'/'
    file = open(mdir+'admin5.html','r');
    txt = file.read()
    temp =""
    begin = txt.find('<table')
    end = txt.find('/table>')
    txt = txt[begin:end]
    file.close()
    file = open(mdir+'admin5.html','w');
    file.write(txt)
    txt2 = '</tr>'
    strlist = txt.split(txt2)
   # print strlist
    for i in range(1,len(strlist)):
        temp = strlist[i]
        ans = ""
        str2 = temp.split('</td>')
        t = 0 
       # print str2
        for j in str2:
            t += 1
            wend = j.rfind('</font>')
           # print j
           # wbeg = j.rfind('>',wend)
            p = j[:wend]
            wbeg = p.rfind('>')
            if (t == 1 or t == 3 or t == 6):
                ans += " " + p[wbeg+1:].strip()
        print ans
    file.close()

    


#!/usr/local/bin/python3.2
# -*- coding: cp936 -*-
import urllib2
import urllib
import urlparse
import io,os,sys
import cookielib

from xml.etree import ElementTree as ET
import sys
reload(sys)
sys.setdefaultencoding('utf8')  #设置默认的编码
def LogIn(): 
    #cookies  设置cookie 直接复制粘贴就可以了
    cookies = urllib2.HTTPCookieProcessor()
    opener = urllib2.build_opener(cookies)
    urllib2.install_opener(opener)

    #这边需要你自己去抓包早到post的的参数 一一对应就可以了 抓包可以利用chrome的F12
    postdata={"loginType":"2","username":LOGIN,"name":LOGIN,"jwydm":"","password":PASSWD,"pswd":PASSWD,"jwypswd":"","image.x":"27","image.y":"10"}
    #loginType=2&username=20101941&name=20101941&jwydm=&password=85592270&pswd=85592270&jwypswd=&image.x=27&image.y=10
    login = urllib2.urlopen(URL,urllib.urlencode(postdata))  #进行表单编码然后 提交url urlopen 可以进行get 和post的提交

    #urlopen(url, data=None)
    #-- Basic usage is the same as original
    #urllib.  pass the url and optionally data to post to an HTTP URL, and
    #get a file-like object back.  One difference is that you can also pass
    #a Request instance instead of URL.  Raises a URLError (subclass of
    #IOError); for HTTP errors, raises an HTTPError, which can also be
    #treated as a valid response.

def xuanke():
    #这个提交有httpheader 有用urllib2.urlopen(request)
    files = open('in.txt',"r")
    s = files.readline()
    postdata={"xh":LOGIN,"xm":XM,"gnmkdm":gnmkdm}
    geturl = URL + '?'+urllib.urlencode(postdata);
    print geturl
    headers ={
     "Host"  :"116.11.32.36",
    "User-Agent"    :"Mozilla/5.0 (Windows NT 6.1; WOW64; rv:11.0) Gecko/20100101 Firefox/11.0",
    "Accept"	    :"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8",
    "Accept-Language":"zh-cn,zh;q=0.8,en-us;q=0.5,en;q=0.3",
    "Accept-Encoding":"gzip, deflate",
    "Connection":"keep-alive",
    "Referer":"	http://116.11.32.36/%28a4gwqn55g5vscn55phjhpm55%29/xf_xsyxxxk.aspx?xh="+"LOGIN""&xm="+XM+"&gnmkdm="+gnmkdm
        }
    postdata={
        "__EVENTTARGET":"",
        "__EVENTARGUMENT":"",
        "__VIEWSTATE":s,
        "ddl_ywyl":"",
        "ddl_kcgs":"",
        "ddl_sksj":"",
        "ddl_xqbs":"1",
        xuankedaima:"on",
        "Button1":"+提+交+"
            };
    pp = urllib.urlencode(postdata)
    xuankechenggong = 0;
    while(xuankechenggong == 0):
        try:
            f = urllib2.Request(geturl,pp) #获取request
            for k in headers:
                f.add_header(k, headers[k]) #添加header
            req = urllib2.urlopen(f)      #发送请求
            
            html = req.read()   #这边是对获取数据的判断
            str = html[0:100]
            index = str.find("alert")
            print str
            if index == -1:
                xuankechenggong = 1;
                print "success"
            else:
                print "try again"
                
        except:
            print "error try again"
    #判断是否选课成功了

def xuanke(daima,banhao,mytype):
    URL = "http://59.67.148.66/selection/xuanke/doing/xkround1.asp" #要提交的网页
    postdata ={"txtKcdm":daima,"txtJxbh":banhao,"ddlczlb":mytype,"Submit":"提交"} #提交的参数
    #txtKcdm=0667066&txtJxbh=2&ddlczlb=1&Submit=提交  我所抓取的包的数据
    print urllib.urlencode(postdata)
    print urllib.urlencode({"Submit":"提交"})
    #try :
    f = urllib2.Request(URL,urllib.urlencode(postdata))
    req = urllib2.urlopen(URL,urllib.urlencode(postdata))
    #print req
    #f = urllib2.Request(URL)
    #except :
    #print "NO"
    
    #mdir=sys.path[0]+'/'
    #file = open(mdir+"tt.html",'w')
    #file.write(f.read())
    #file.close()
    
    
def ask(URL):
    #web request
    req=urllib2.Request(URL.strip())
    f=urllib2.urlopen(URL)

    s=f.read()
# s=s.decode('utf8','ignore')
    #print dir(f)
    #print f.headers
    mdir=sys.path[0]+'/'
    file=open(mdir+'admin5.html','w')
    file.write(s)
    file.close()
    print "hello"


LOGIN = "20101941"
PASSWD ="85592270"
cookiefile = './cookies.dat'
URL = "http://59.67.148.66/index.asp"
# cookie
LogIn()
#ask(URL)
#ask("http://59.67.148.66/score/xsywcjcy.asp")
Downphoto(2010)
#myread()

#xuanke("0667066","2","3")
#ask("http://59.67.148.66/selection/xuanke/doing/xkround1.asp")
#print "yes"


def Downphoto(name):  #当时写的用来下载教务处图片的
    beg = name * 10000+2741
    end = beg + 9999
    mdir=sys.path[0]+'/'
    for i in range(beg+1,end):
        temp = str(i)+".jpg"
        print temp
        try:
            req = urllib2.Request("http://59.67.148.66/cet46/photo/apply/"+temp)
            f =  urllib2.urlopen(req)
            file = open(mdir+'/aa/'+temp,'wb')
            file.write(f.read())
            file.close()
        except :
            print str(i)+"不存在"

def myread():
    mdir=sys.path[0]+'/'
    file = open(mdir+'admin5.html','r');
    txt = file.read()
    temp =""
    begin = txt.find('<table')
    end = txt.find('/table>')
    txt = txt[begin:end]
    file.close()
    file = open(mdir+'admin5.html','w');
    file.write(txt)
    txt2 = '</tr>'
    strlist = txt.split(txt2)
   # print strlist
    for i in range(1,len(strlist)):
        temp = strlist[i]
        ans = ""
        str2 = temp.split('</td>')
        t = 0 
       # print str2
        for j in str2:
            t += 1
            wend = j.rfind('</font>')
           # print j
           # wbeg = j.rfind('>',wend)
            p = j[:wend]
            wbeg = p.rfind('>')
            if (t == 1 or t == 3 or t == 6):
                ans += " " + p[wbeg+1:].strip()
        print ans
    file.close()



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值