回来之后,基本上就没有写。平时经常会想起来有些东西能够写,但是面对着电脑的时候就有很多事情想干,总是会忘记…… 从前也是这样吧。
新学期了,各位准备6G的同学们也都在忙碌。10G的也不少,大多也在背单词。估计我大致也是10G,但是现在背单词很没有连续性,断断续续的……
这样下去可不行,太慢了……
开学初,上课情况总是比较好的。不过这个数据结构的课,早上第一节,内容大部分也都会…… 还是算了……
但是偏偏上课还有小测验,有时候还是需要去的。其实早上上课也不是那么困难,只是要前一天晚上早点睡觉就可以了。基本上,十一点半睡觉,能够去上早上第一节课,而十二点半睡觉,上第二节课没有什么问题。如果睡晚了,起床的时候遇到的阻力就会增加,虽然偶尔能够靠意志力克服,但是每次都这样就比较艰苦了。
英语46级查分的程序
昨天46级能够查分了,研究了一下……
主页面调用了一段javascript,验证码竟然是本地验证的…… 这个不说,其实最后查分就是通过XMLHttpRequest直接查…… 就没什么加密一类的事情……
之后找了一下,好像XMLHttpRequest这个东西还只有Javascript里面才有,python用起来还不方便…… 用FireBug试了一下,因为这个查分系统的请求里面没有数据,所以这个请求其实很简单,拿urllib糊弄一下就好了……
另外关于FireFox里面不能查的问题,貌似是FireFox的XMLHttpRequest在send(null)的时候HTTP头里面没有Content Length字段,其实send(“”)就可以了……
另外,最后这个系统还检查一下Referer,至少不是什么都不干……
1 import urllib
2 import urllib2
3
4 id = “Your ID“
5 t = “4“
6 url = ‘http://cet.99sushe.com/cetscore_99sushe0902.html?t=‘ + t + ‘&id=‘ + id
7 values = {}
8 headers = { “Referer“ : “http://cet.99sushe.com“ }
9
10 data = urllib.urlencode(values)
11 req = urllib2.Request(url, data, headers)
12 response = urllib2.urlopen(req)
13 the_page = response.read()
14 result = the_page.split(‘,‘)
15
16 print “Listening :“,result[0]
17 print “Reading :“,result[1]
18 print “Mixed :“,result[2]
19 print “Writing :“,result[3]
20 print “Total :“,result[4]
21 print “School :“,result[5].decode(‘gb2312‘)
22 print “Your Name :“,result[6].decode(‘gb2312‘)
23 print “Name1 :“,result[7].decode(‘gb2312‘)
24 print “Name2 :“,result[8].decode(‘gb2312‘)
25 print “Name3 :“,result[9].decode(‘gb2312‘)
回来了
回来正好在下雪,据说北京差不多一个冬天没下雪,这两天刚开始下,真幸运~
我刚回来的时候,那个雪的厚度正好,踩上去能听见嘎吱嘎吱的声音,感觉也很不错。如果再厚一点就会妨碍行走,太薄了又没有感觉~
上学期成绩不好不坏,这学期课少,不过要学英语…… 总之尽可能在弄好一点吧,我承认我上学期不是那么用功……
转载: 给经常修理电脑的朋友16点忠告
1、首先记住这句话:永远不要承认自己是高手,因为这个称号是要付出代价的。
2、接到陌生电话后,一定要问清楚对方有什么事情,然后再告诉他(她)当前你
目前所在的位置。
3、永远不要试图通过电话或者QQ解决某个问题,对方很有可能不知道菜单是什么
东西,这不能怨他们,只能怨你自己,因为你永远懒于解释给他们听。
4、不要想着立马可以解决遇到的问题,因为你所遇到的总是崩溃的系统或者处于
崩溃边缘的系统。
5、如果对方允许你重新安装系统,那就不要试着去做任何修复工作,因为重装系
统是最快解决问题的办法。
6、除了询问哪些资料需要备份,你不要提问对方任何问题,除非你的心理承受能
力特别强。
7、学会保守做人,每次开工前,都记得告诉对方:"我可能无法最终解决问题,
还要继续吗?"。
8、对电脑的外观检查永远是第一位的,看看线路是否连接正常,看看USB接口是否
连接了其他设备等等。
9、相信硬件的抗噪能力,尽可能的情况下,不要打开对方的机箱。没有做成医生,
反倒被当作破坏者,那是很悲哀的事情。
10、做好被别人数落的心理准备,因为不懂电脑知识的人,往往懂得如何评价别人。
11、如果人家说他的内存有200G,你千万不要纠正说是硬盘,否则,你的噩运即将来临。
12、不知道菜单是什么东西的人,一般也会知道虚拟内存是怎么回事的,按照他的
要求去调整就可以了,反正这个不会影响到你完成修理工作。
13、告诉对方,你没有任何杀毒软件,否则,您所安装的杀毒软件都是最差的,也
是问题最多的。
14、别让自己成为处理打印机故障的高手,告诉你,打印机的麻烦事情可比电脑多多了。
15、坚决不要帮别人购买电脑,尤其是组装机,除非你想背上吃回扣的骂名,然后
每天屁颠屁颠的去帮他们处理故障。
16、不要反感以下两句话,它会伴随你很久时间:
第一句:"我的电脑又出大问题了。"
第二句:"你还是过来帮我看看吧。"
另外忠告在办公室工作的朋友,要记住以下几点原则:
1、尽量不要去动别人的电脑,否则,若干天以后,你的这一行动会导致他的系统崩
溃并带来埋怨。
2、不要去纠正别人的任何错误,除非你有说服别人的超强能力。
3、尽可能的前提下不要互相传递任何电子文档,因为你的文件很有可能被指责为病毒。
4、不要害怕指责,因为你无法逃避。
原文:http://blog.kangkang.net/index.php/archives/229
博客转移记(1)——关于metaWeblog接口
本来想直接用网上的博客转移服务,无奈找了好几个,比如http://blogmover.redv.com,但是这家的Blogger写入插件好像坏了…… 又如maikr,这个要注册,而且还是windows程序…… 最后只好自己写一个,就当练练Python。 首先是读取原mblogger.cn上的。这个支持metaWeblog接口,试了一下,非常好用。基于Python这种脚本语言的灵活性,对象的方法能够动态生成(估计差不多就像perl里面有个函数能处理未定义的方法调用一样……),metaWeblog的接口直接就成了Python里面对象的方法。 首先,引用xmlrpclib,这个东西现在Python自带了。 接下来 server_uri = “http://computer.mblogger.cn/henryhu/services/metablogapi.aspx” sp = xmlrpclib.ServerProxy(server_uri) 这样就搞出来一个能够帮你进行xmlrpc调用的对象了。它有.system.listMethods()方法,还有.system.methodHelp(method)方法,不但能知道有哪些方法,还有使用说明…… 这个实在是很好用…… 随后 blogs = sp.blogger.getUsersBlogs(progname, username, password) 得到一个list,里面每个对象是个dict,就是一个blog。 这个dict里面的blogid,之后就用来代表这个blog了。blogName对应的博客标题。 for post in sp.metaWeblog.getRecentPosts(blogid, username, password, POST_LIMIT): 这个是metaWeblog的方法,获取最近的POST_LIMIT个帖子。自然你希望获取全部的话,取个什么99999之类的就行了…… 这个post就是个dict,里面有title(标题),description(内容),link(帖子链接),dateCreated(写作日期),categories(分类)。 前三个都是字符串。第三个就复杂点。 返回的这个格式,应该是XMLRPC的标准格式,但是Blogger不认,Blogger认datetime对象的isoformat()返回的格式。 datetime.datetime.strptime(post[‘dateCreated’].value,”%Y%m%dT%H:%M:%S”)+datetime.timedelta(hours=-8) 这样能够把它转换成datetime对象。之所以要后面减掉8小时,因为这里返回的是本地时间(UTC+8),而Blogger需要的是UTC时间,所以要-8。 categories是个list,每项是个字符串,就是分类。 后来搞了一天不成,第二天想着把Comments也移过来。 这个不是metaWeblog力所能及的了,只好直接抓网页了。 本来想把comment的内容提取出来用Blogger API的comment功能发上去。无奈这个comment功能目前只能用自己的帐号发comment,这个看上去就很不好看。后来想想,干脆直接把网页的评论部分处理一下,附在内容后面,还能保存原有风格,以及发送时间、发送人信息等。 httpold = urllib2.urlopen(post[‘link’]).read() 这样先把网页抓下来。 草稿也是返回的,而草稿会抓来一个错误网页。另一方面,在抓下来的网页中发现错误,我就认为这个是草稿——虽然这个像dirty hack,但是也能用用~ commentpart = comm_exp.search(httpold).groups()[0] newcommentpart = comm_re2.subn(“”,commentpart) 其中 comm_exp = re.compile(“(
)\s*<div id=\”commentform\”>
“) comm_re2 = re.compile(“(&lt;a id=\”_ctl\d+__ctl\d+_CommentList__ctl\d*_EditLink.*</a&rt;)”)#(.*)</a>\r\n</h4>
\s*