心得
程序员文章站
2022-06-17 11:46:38
...
2.bigpipe http://www.searchtb.com/2011/04/an-introduction-to-bigpipe.html
3.延迟加载图片http://www.54chen.com/architecture/rose-open-source-portal-framework.html?spm=0.0.0.0.kInmHJ
http://www.cnblogs.com/BearsTaR/archive/2010/06/18/facebook_html_chunk.html?spm=0.0.0.0.kInmHJ
4.css样式规则 https://developers.google.com/speed/docs/best-practices/rendering?hl=zh-CN
5.urllib2 只支持 HTTP 的GET和POST方法,如果要使用 HTTPPUT和DELETE,只能使用比较低层的 httplib 库。虽然如此,我们还是能通过下面的方式,使 urllib2 能够发出PUT或DELETE的请求.貌似urllib2不支持缓存
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 |
7.
Debug Log
使用 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
转载于:https://my.oschina.net/u/1046518/blog/142144
上一篇: 心得