最近在研究OSPF路由协议。OSPF中SPF是指Sortest Path First,在求这个最短路径的过程中就用到了Dijkstra算法。很不好意思的是虽然数据结构课上仔细讲过(么?我没去上课几乎,应该讲过吧)但是都忘的差不多了- – 本着内死问Google,外事还问Google的精神我很自然的到Wikipedia上查到了有关资料(喂),想看的自己去点连接看。 然后下面是代码,分别使用Java和Python实现,相关数据结构省略,完整的代码在这里。
Posts under ‘Python’
饭否消息备份Python脚本
使用API接口备份饭否消息为XML格式,Python3.0。 有人说API只能导出前3200条消息,其实是可以导出所有消息的,只不过用的参数不同而已。 导出为XML的缺点就是数据好大,我5700+消息导出来有10M。 另外还有一个问题就是饭否的bug了,导出的xml如果里面还有特殊unicode字符时会导致解析器抛异常,其实饭否输出的时候应该进行xmlencode一下的。 大概就是这样。下面是代码刷屏,过敏者请勿点击。
python写的google代理
昨天和今天两天晚上写了半个HTTP代理,之所以说是半个是因为还有很多东西没完成。最初的设想是写一个类似Free Gate之类的加密代理,主要是就是吧客户端在本地受到的请求(HTTP)加密打包post上来然后在服务器上获取目标URL再加密返回(主要是这个空间没有HTTPS,不然加密也可以省掉了)。理论上这样做是没错啦,但是实现起来有很多麻烦,比如godaddy的脚本运行时限就是个问题(20秒),超过了就直接结束而什么都不返回,其次客户端怎么写也是个问题(是你太懒了吧喂)≡ω≡+ 于是乎就先完成了现在这个样子:proxy.icybear.net 嗯嗯,理论上就是完全针对google.com的反向代理,不过由于没有加密处理,所以遇到敏感词还是会被墙≡ω≡ 下面是代码刷屏,对代码过敏者请询医嘱。
【撞墙】那啥,反正已经蛋痛过一次了……再来画图吧
下午很蛋痛的用正则表达分析网页去了,然后刚才发现原来饭否提供的API里面有直接搜索的API,OTL…… 蛋痛并继续蛋痛吧,吧频率图的程序补完- -,依赖pygooglechart @ pygooglechart.slowchop.com 然后不负责任的贴代码走人,output_fqcd是前一个程序的输出- – Python不支持unicode的模块名么? # -*- coding: UTF-8 -*- from output_fqcd import fanfou_data mapdata = map(lambda data: data['time'][2:7] ,fanfou_data) def reduce_func(d,r): if r in d: d[r] = d[r]+1 else: d[r] = 1 return d data = reduce(reduce_func,mapdata,{}) new_data = [] for x,y in data.iteritems(): new_data.append((x,y)) new_data.sort(lambda a,b: cmp(a[0],b[0])) print(new_data) x_data = [...]
【蛋痛】吧饭否的老底翻出来
蛋痛的饭否搜索抓取,开始的时候被饭否耍了一下,url里面有个p的参数是控制最大搜索数量的。 抓取结果保存为python模块(Python3.0) #!/usr/bin/env python # -*- coding: UTF-8 -*- import urllib.request import re key_word = ‘番茄操蛋’ key_enc = urllib.parse.quote(key_word) #不用代理的无视 proxy_support = urllib.request.ProxyHandler({“http” : “http://192.168.60.250:8080″}) opener = urllib.request.build_opener(proxy_support) urllib.request.install_opener(opener) def load(url): f = urllib.request.urlopen(‘http://fanfou.com’ + url) resp = f.read().decode(“utf-8″) f.close() return resp user_re = re.compile(r’<a href=”/(?P<uid>[^"]+?)” title=”(?P<nick>[^"]+?)” class=”avatar”><img src=”(?P<avatar>[^"]+?)”.+?<span class=”content”>(?P<content>.+?)</span>.+?<a href=”/statuses/(?P<mid>[^"]+?)” class=”time” title=”(?P<time>[^"]+?)”>’) next_re = [...]

