2.bigpipe http://www.searchtb.com/2011/04/an-introduction-to-bigpipe.html css
3.延迟加载图片http://www.54chen.com/architecture/rose-open-source-portal-framework.html?spm=0.0.0.0.kInmHJ html
http://www.cnblogs.com/BearsTaR/archive/2010/06/18/facebook_html_chunk.html?spm=0.0.0.0.kInmHJ python
4.css样式规则 https://developers.google.com/speed/docs/best-practices/rendering?hl=zh-CN git
5.urllib2 只支持 HTTP 的GET和POST方法,若是要使用 HTTPPUT和DELETE,只能使用比较低层的 httplib 库。虽然如此,咱们仍是能经过下面的方式,使 urllib2 可以发出PUT或DELETE的请求.貌似urllib2不支持缓存 vim
6.history|awk'{a[$2]++}END{for(i in a){print a[i] " " i}}'|sort-rn |head 缓存
02 | 2141 git |
03 | 967 vagrant |
04 | 702cd |
05 | 701 gvim |
06 | 618ssh |
07 | 552 fab |
08 | 444ls |
09 | 360 vim |
10 | 318rm |
11 | 223mv |
6.Tornado推出2.0版 app
7. ssh
使用 urllib2 时,能够经过下面的方法把 debug Log 打开,这样收发包的内容就会在屏幕上打印出来,方便调试,有时能够省去抓包的工做 网站
import urllib2 httpHandler = urllib2.HTTPHandler(debuglevel=1) httpsHandler = urllib2.HTTPSHandler(debuglevel=1) opener = urllib2.build_opener(httpHandler, httpsHandler) urllib2.install_opener(opener) response = urllib2.urlopen('http://www.google.com') 这个只是针对我登录的网站写的识别代码,使用的PIL库。贴出供你参考。对于新浪那些验证码估计没那么简单能破的。个人验证码识别就是简单的处理下图片, 把图片变成黑白,而后切割与库中模板进行异或操做,选取与库图片差异最小的做为识别结果。(验证码识别思路:能够先把验证码下载本地,用PS处理 下,RGB单通道、对比度、亮度调整等) 代码: import Image import ImageEnhance import os result=[] def verfiy_Identification(): #下载验证码 url = 'http://xx.xx.com/verify' file("./Initial/1.bmp","wb").write(urllib.urlopen(url).read()) #库图片字典 Font_Pic = {} #定义初始图片变量 Init_Pic= Image.open("./Initial/1.bmp") Init_Pic_Cov=Init_Pic.convert('1') Init_Pic_Cov_Cro_=[] s = 4 t = 5 w = 13 h = 16 #切割图片 for a in range(4): Init_Pic_Cov_Cro = Init_Pic_Cov.crop((s+9*a,t,w+9*a,h)) Init_Pic_Cov_Cro_.append(Init_Pic_Cov_Cro) #Init_Pic_Cov_Cro_[a].save("./Initial/"+str(a)+".png") for b in range(10): Font_Pic=Image.open("./font/"+str(b)+".bmp") value=[] for y in range(11): for x in range(9): Font_Pic.putpixel((x,y), Init_Pic_Cov_Cro_[a].getpixel((x,y)) ^ Font_Pic.getpixel((x,y))) #统计白色点数目 value = list(Font_Pic.getdata()) result.append(value.count(255)) #print value.count(255), #print "\n" #--------------------------------- #寻找列表最小值,返回其位置 #-------------------------------- def getMinIndex(my_list): min = my_list[0] for i in my_list: if i < min: min = i return my_list.index(min) if __name__=="__main__": verfiy_Identification() name1=getMinIndex(result[0:10]) name2=getMinIndex(result[10:20]) name3=getMinIndex(result[20:30]) name4=getMinIndex(result[30:40]) #print name1,name2,name3,name4, newname=str(name1)+str(name2)+str(name3)+str(name4) os.rename("./Initial/1.bmp","./Initial/"+newname+".bmp") print newname