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

importSimpleHTTPServerimportSocketServerimportloggingimportcgiimporturllibimporturlli... 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()
登陆后抓取某一学期的成绩
展开
 我来答
百度网友96a721061
2012-06-12 · TA获得超过511个赞
知道小有建树答主
回答量:762
采纳率:0%
帮助的人:379万
展开全部
首先引用py中网络的相关组件
def grade(uname,password):从外部获取用户名和密码,带入opener中,按网站的接收格式向地址发送信息,等待网站返回结果:成功登录或者失败。
成功后打开成绩页面,后面就是依照成绩的格式读取相应字段(科目,成绩)写入result中
class ServerHandler(SimpleHTTPServer.SimpleHTTPRequestHandler):这是防止由于是PY发出的请求而非浏览器请教被网站拒绝而设置的伪装,同时测试该网页接口。
最后打印result。
追问
能详细解释下里面的参数和方法各自的作用么
Lsin30
2012-06-15 · 超过16用户采纳过TA的回答
知道答主
回答量:80
采纳率:0%
帮助的人:47.5万
展开全部
建立cookie,post帐号密码后,通过这个cookie去访问相关的链接。就这么简单
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式