Archive for the 'python' Category



python使用QtWebKit代码记录

这几天在折腾python使用QtWebKit的实验,算是刚刚摸清了一些门道.
以下是python使用QtWebKit代码记录

  1. import sys
  2. import time
  3. from PyQt4 import QtGui, QtCore, QtWebKit
  4.  
  5. class Sp():
  6.     def save(self):
  7.         print "call"
  8.         data = self.webView.page().currentFrame().documentElement().toInnerXml()
  9.         open("htm.txt","w").write(data)
  10.         print 'finished'
  11.         time.sleep(5)
  12. print 'finisheed......2'
  13. #sys.exit()
  14.         
  15.     def txtfile(self):
  16. print "starting..."   
  17.  
  18.     def main(self):
  19.         self.webView = QtWebKit.QWebView()
  20.         self.webView.load(QtCore.QUrl("http://www.neiyiwangzhan.com"))
  21.         self.webView.show()
  22.         QtCore.QObject.connect(self.webView,QtCore.SIGNAL("loadFinished(bool)"),self.save)
  23.  
  24. app = QtGui.QApplication(sys.argv)
  25. s = Sp()
  26.  
  27. s.main()
  28.  
  29. sys.exit(app.exec_())

调用网页,和保存网页内容到htm.txt
在windows7 python2.5下通过

为了防止代码格式乱,可以点击这里下载文件: w1.py

Tag:

大惊小怪python多线程中原来可以再开线程的

前阵子写的python爬网站的蜘蛛程序,本来就是打开30个线程去爬30个网站的,即是一个网站一个线程去爬,慢得要死,所以去尝试下线程中再打开线程,先google了大量的python线程的资料,但都没有提及到相关的,只有自己实践去了,经过空余时间的一天乱搞,大惊小怪python线程中原来可以再开线程的,python多线程也不算难学啊,指简单的那部分,哈哈,实践才是硬道理啊!

菜鸟摸索python学习过程真有趣啊…

到此疯言结束,(*^__^*) 嘻嘻……

Tag:

html网页元素在屏幕上的坐标获取

今天在用python调用IE获取html网页元素在屏幕上的坐标,当然为了截图啦,(*^__^*) 嘻嘻……

xtop=ie.document.forms[i].elements[j].getBoundingClientRect().top + ie.document.parentwindow.screentop

xleft=ie.document.forms[i].elements[j].getBoundingClientRect().left + ie.document.parentwindow.screenleft

xwidth= ie.document.forms[i].elements[j].getBoundingClientRect().right - ie.document.forms[i].elements[j].getBoundingClientRect().left

xheight= ie.document.forms[i].elements[j].getBoundingClientRect().bottom - ie.document.forms[i].elements[j].getBoundingClientRect().top

forms[i].elements[j].可以用 getElementById(“username”) 代替

然后用python调用delphi截图程序,这样就可以获取网页元素上的截图了,有什么用,嘻嘻,获取图形验证码嘛,然后…

delphi的截图函数:

procedure tform1.snapscreen(a,b,c,d:Integer);
var
bmpscreen:Tbitmap;
jpegscreen:Tjpegimage;
FullscreenCanvas:TCanvas;
dc:HDC;
sourceRect, destRect: TRect;
begin
try
dc:=getdc(0);
fullscreencanvas:=Tcanvas.Create;
fullscreencanvas.Handle:=dc;
bmpscreen:=Tbitmap.create;
bmpscreen.Width :=c-a;
bmpscreen.Height :=d-b;
sourcerect:=rect(0,0,c-a ,d-b );
destrect:= rect(a,b,c,d);
bmpscreen.Canvas.CopyRect(sourcerect,fullscreenCanvas,destrect);
jpegscreen:=Tjpegimage.Create ;
jpegscreen.Assign (bmpscreen);
jpegscreen.CompressionQuality:=100;
jpegscreen.SaveToFile(ExtractFilePath(ParamStr(0))+'tmp.jpg');
FullscreenCanvas.Free;
bmpscreen.Free;
jpegscreen.Free ;
ReleaseDC(0, DC);
except
end;
end;

python调用exe:
os.system(‘jietu.exe ‘+str(xleft+3)+’ ‘+str(xtop+3)+’ ‘+str(xwidth)+’ ‘+str(xheight))

str(xleft+3)等是我的参数,大家应该看得明吧,(*^__^*) 嘻嘻……

Tag:

一段python编码,解决html代码转换问题

采集某网页需要的一段python编码,解决html代码转换问题,搞了一个下午,原来又是个好简单的问题

def unescape_word(s):
    
words = re.findall("&#(\d+);", s)
    
    
if words:
      
result=s
      
for r in words:
        
word =unichr(int(r))
        
result = result.replace("&#%s;" % r,word)
    
else:
      
result = s
    
return result

这样使用:

m1='ACA 面包机MB-600(黄色)'
print unescape_word(m1)

Tag:

web.py的hello world

今天早上在网上看见的web.py例子,没玩过这python的东西,所以想试试,貌似很简单的,有时间学习一下,发觉现在自己好多应用都离不开python语言啊,现在对它都比较熟练,当然指普通的应用啦,应该说自己的应用。

不废话了,先来个web.py的hello world代码记录

import web
urls = ( '/','Index',
)
class Index:
 
def GET(self):
    
return "Hello,world!"
 
 
app=web.application(urls,globals())
 
if __name__=="__main__":
 
app.run()

就是这么简单了,至于在windows下安装的话,

如果已经安装了easy_instal的话就:easy_install web.py

easy_instal安装,用下载工具下载这个脚本吧: http://peak.telecommunity.com/dist/ez_setup.py。

Tag:

终于学会python线程操作了

其实操作起上来还是蛮简单的,关于python线程的操作,之前在使用Delphi的线程操作时,总是搞不定,可能我蠢吧!不过python大概一天就学会了,当然是单纯的线程,线程间没联系,暂时只是使用到这些,需要用到什么就学什么,所以,线程的深层操作我还是不了解得!

Any Way , python是门容易操作的程序语言,简单易懂,之所以不用delphi是因为我的操作都是在linux下,不过现在好多简单的不需要用到界面的,不需要高速处理的,我都是用pyhon解决的,因为方便,不用每次编译这么麻烦!

继续搞我的爬互联网的python蜘蛛程序!

Tag: