Python代码求解释 求大神解释一下这段代码 详细点 最好每句加上注释 谢了

import SimpleHTTPServer
import SocketServer
import logging
import cgi

import urllib
import urllib2
import cookielib
def grade(uname,password):
cj=cookielib.CookieJar()
opener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
req=urllib2.Request("http://202.115.139.16/login.php",urllib.urlencode({"uname":uname,"upwd":password}))
req.add_header("Referer", "http://202.115.139.16/login.php")
d=opener.open(req)

f=opener.open("http://202.115.139.16/sys_xj_xscj/sys_xj_xscj.php")

result=''
lines = f.readlines()
list1 = lines[551:682]
list2 = lines[1:21]
for line in list2:
result+=line
for line in list1:
result+=line
result+="</table>"
#result= f.read()

fexit=opener.open("http://202.115.139.16//closesys/closesys.php")
return result

PORT = 13000

class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):

def do_GET(self):
#logging.error(self.headers)
SimpleHTTPServer.SimpleHTTPRequestHandler.do_GET(self)

def do_POST(self):
#logging.error(self.headers)
form = cgi.FieldStorage(
fp=self.rfile,
headers=self.headers,
environ={'REQUEST_METHOD':'POST',
'CONTENT_TYPE':self.headers['Content-Type'],
})
uname=form.list[0]
upw=form.list[1]
uname=str(uname)[26:-2]
upw=str(upw)[24:-2]
self.send_response(200)
self.send_header("Content-type","text/html;charset=gb2312")
self.end_headers()
self.wfile.write(grade(uname,upw))

Handler = ServerHandler

httpd = SocketServer.TCPServer(("", PORT), Handler)

print "Service port:",PORT
httpd.serve_forever()
登陆后抓取某一学期的成绩

首先引用py中网络的相关组件
def grade(uname,password):从外部获取用户名和密码,带入opener中,按网站的接收格式向地址发送信息,等待网站返回结果:成功登录或者失败。
成功后打开成绩页面,后面就是依照成绩的格式读取相应字段(科目,成绩)写入result中
class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):这是防止由于是PY发出的请求而非浏览器请教被网站拒绝而设置的伪装,同时测试该网页接口。
最后打印result。追问

能详细解释下里面的参数和方法各自的作用么

温馨提示:内容为网友见解,仅供参考
第1个回答  2012-06-15
建立cookie,post帐号密码后,通过这个cookie去访问相关的链接。就这么简单

Python代码求解释 求大神解释一下这段代码 详细点 最好每句加上注释...
首先引用py中网络的相关组件 def grade(uname,password):从外部获取用户名和密码,带入opener中,按网站的接收格式向地址发送信息,等待网站返回结果:成功登录或者失败。成功后打开成绩页面,后面就是依照成绩的格式读取相应字段(科目,成绩)写入result中 class ServerHandler(SimpleHTTPServer.SimpleHTTPReques...

python代码 每一行给出注释 并解释用法
d = {} #定义一个空字典for word in ls: #迭代列表ls d[word] = d.get(word, 0) + 1 #将迭代出来的每一个元素作为键,该键的个数作为值添加到字典,for k in d: #迭代字典 print("{}:{}".format(k, d[k])) #格式化打印键值 ...

python图像处理代码,望大神详细解释。越详细越好
初始化一个矩形np.max(marks)+1行,3列,默认值为0colorTab = np.zeros((np.max(marks)+1,3))#遍历数组,给每行的3列赋值,就是RGB颜色值,8位的for i in range(len(colorTab)): aa = np.random.uniform(0,255) bb = np.random.uniform(0,255) cc = np.random.uniform...

python全排列代码,求解释
def perm(l):#定义自定义函数 函数名为perm 参数为l 当传入参数时 l等于该参数 if(len(l)<=1): #if语句如果传入的参数l的长度小于等于1(也就是0)则运行下面代码 否则跳过该if# #语句 return [l] #返回列表[l] 此处为递归的终止 r=[] #定义列表 并初始化r ...

python。求解释一下程序的运行
第24题是对字符串进行遍历,字符串的值为12345,其中一个比较关键的语句就是 j += i + ',',可以转换为j = j + i + ','。这个语句的意思就是将每次遍历的结果追加到变量j上面,同时在每个i之间追加一个逗号,所以最后打印j时,就得到D选项。其中A选项是容易混淆...

python新手, 求帮忙翻译一段代码
python中的None 就是JAVA里的null python中(A,B,C,D)代表的是元祖,元祖类似数组,但是元祖本身是不可变的。def xxx 定义函数,类似javascript中的 function xxx()python中,代码段是用缩进代表,而不是{}。 相同缩进规则的代码是一个代码段 好了,这段代码里的只是点就这么多了,自己翻译一下吧...

【Python】有没有大佬懂下面这段代码思路?
上一段连续出现的字符终止 那么先print()上一段连续出现的字符及其个数,再重置a为新一段连续出现的字符 第二个print()在for循环之外,表示打印最后一段连续出现的字符及其个数 添加了注释的代码和运行结果如下:关键在于先排序,再统计每段连续出现的字符,注意不要忘记最后一段~望采纳~

跪求这段python代码(递归函数)的详细解释。
这段代码其实是最简单的递归阶乘计算方法,大概可以分2种可能。当传入参数是1的时候,1的阶乘等于1就返回1.当传入参数大于1的时候,比如5,那么就返回5乘以(4的阶乘),以此类推

python日期索引代码求解释
其实你只要打印一下endings这个变量就可以了,它只是生成了一个包含1到31的英语语法结尾。print endings#['st', 'nd', 'rd', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'th', 'st', 'nd', 'rd'...

求Python代码
这段代码首先定义了一个包含1、1、2、2、3、3的列表data。然后,它使用三个嵌套循环来枚举所有可能的三个数的组合。这里的关键是,每次循环我们都要从上次循环结束的位置开始,以避免重复计算。最后,我们打印出每个组合的结果。注意,这个代码只会打印出不同的组合,不会去重。如果需要去重,可以在...

相似回答