posts - 403, comments - 310, trackbacks - 0, articles - 7
            BlogJava :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理

          用Python寫了個URP查分程序

          Posted on 2007-08-03 19:50 ZelluX 閱讀(565) 評論(0)  編輯  收藏 所屬分類: Scripting
          將兩個文件放在同一目錄中,修改gpa.sh中的賬號密碼,并用chmod設置為可執行,運行即可。
          寫得不怎么樣,像URPParser里處理標簽的時候直接輸出了,很不規范,不過懶得改了
          urpparser.py:
          from sgmllib import SGMLParser

          class URPParser(SGMLParser):
              
          def reset(self):
                  self.tdOpen 
          = 0
                  self.colCount 
          = -1
                  self.firstRow 
          = 1
                  self.pieces 
          = []
                  SGMLParser.reset(self)

              
          def start_td(self, attrs):
                  
          """
                      When encountered with tag td, check whether there's
                      an align property in the tag, which will distinguish
                      score table from others.
                  
          """
                      
                  
          for (k, v) in attrs:
                      
          if (k == "align"):
                          self.tdOpen 
          = 1
                          
          break

              
          def end_td(self):
                  self.tdOpen 
          = 0

              
          def handle_data(self, text):
                  
          if (self.tdOpen > 0):
                      
          if (len(text.strip()) > 0):
                          self.colCount 
          += 1
                          
          if (self.colCount > 6):
                              self.colCount 
          = 0
                              self.firstRow 
          = 0
                              
          print
                          
          if (self.firstRow):
                              
          return
                          
          if (self.colCount == 2):
                              
          print "\t",
                          
          else:
                              
          print text.strip(),"\t",

          gpa.sh:
          #!/usr/bin/python
          import urllib, cookielib, urllib2

          loginURL 
          = "http://fdis.fudan.edu.cn:58080/amserver/UI/Login?" +\
                     
          "goto=http%3A%2F%2Fwww.urp.fudan.edu.cn%3A84%2Feps" +\
                     
          "tar%2Fapp%2Ffudan%2FframeSub.jsp%3FaffairNO%3D035067"
          scoreURL 
          = "http://www.urp.fudan.edu.cn:84/epstar/app/fudan/S" +\
                     
          "coreManger/ScoreViewer/Student/Course.jsp"
          logoutURL 
          = "http://www.urp.fudan.edu.cn/logout.jsp"

          cookie 
          = cookielib.CookieJar()
          opener 
          = urllib2.build_opener(urllib2.HTTPCookieProcessor(cookie))
          urllib2.install_opener(opener)
          str 
          = urllib.urlencode({'Login.Token1''06301000000''Login.Token2'"yourpassword"})
          sock1 
          = urllib2.urlopen(loginURL, str)
          loginHTML 
          = sock1.read()
          sock1.close()

          sock2 
          = urllib2.urlopen(scoreURL)
          scoreHTML 
          = sock2.read()
          sock2.close()

          sock3 
          = urllib2.urlopen(logoutURL)
          sock3.close()

          from urpparser import URPParser
          parser 
          = URPParser()
          parser.feed(scoreHTML)
          print



          主站蜘蛛池模板: 江陵县| 陇西县| 兰溪市| 阳泉市| 鹿邑县| 醴陵市| 田东县| 安多县| 马关县| 灵宝市| 微山县| 深州市| 洮南市| 炉霍县| 淮北市| 务川| 大冶市| 灵丘县| 沂水县| 黔东| 霍州市| 恩施市| 昭平县| 广西| 余姚市| 弋阳县| 德庆县| 江永县| 原阳县| 陆河县| 兰考县| 邓州市| 海林市| 德州市| 石楼县| 托克逊县| 汶川县| 兖州市| 宽甸| 竹山县| 含山县|