Linux教程之PY IE 主动化点击工具
小知识:在过去的四年中,我经常使用CentOS,主要是作为企业Linux商业版本产品的一种替代,很多个人、企业或机构都希望拥有主流企业Linux的稳定性、可靠性和声誉。必要安装PAM30,和pywin32-217.win32-py2.7.exe将pam30.py安排你到PYTHON中的LIB目次下便可
WIN7操纵体系需改动IE文档形式
入手下手菜单–运转–输出gpedit.msc后断定–用户设置–办理模板–Windows组件–InternetExplorer–兼容性试图–在右侧找到“翻开InternetExplorer7尺度形式选择”,双击翻开,选择“已禁用”–断定nte
此工具主动猎取无忧代办署理上的代办署理地点然后考证小于50MS的。主动改换IE代办署理点击
#coding:gbkimportsys,os,shutilimportre,_winreg,globimportcookielibimporturllibimporturllib2fromurllib2importURLError,HTTPErrorfromPAM30importPAMIEfromtimeimportsleepfromrandomimportrandintDEBUG=Truekeyword=raw_input("请输出准确关头词")#注:在利用IE7以上的扫瞄器须将是不是封闭一切选项卡的勾点上不然会形成步伐逝世轮回#================扫除COOKIE================不然百度不管帐算会见,请在步伐第67行修正本人电脑路劲defCleanDir(Dir):ifos.path.isdir(Dir):paths=os.listdir(Dir)forpathinpaths:filePath=os.path.join(Dir,path)ifos.path.isfile(filePath):try:os.remove(filePath)exceptos.error:print"OK"elifos.path.isdir(filePath):iffilePath[-4:].lower()==".svn".lower():continueshutil.rmtree(filePath,True)returnTrue#改换代办署理IP。间接修正WINDOWS注册表defalterip(ip=None):key=_winreg.OpenKey(_winreg.HKEY_CURRENT_USER,r"SoftwareMicrosoftWindowsCurrentVersionInternetSettings",0,_winreg.KEY_ALL_ACCESS)value,type=_winreg.QueryValueEx(key,"ProxyServer")ifip!=None:_winreg.SetValueEx(key,ProxyEnable,0,_winreg.REG_SZ,"1")if_winreg.SetValueEx(key,ProxyServer,0,_winreg.REG_SZ,ip):print"IP改换失利"else:print"改换乐成"_winreg.CloseKey(key)returnTrue#==============IE点击模块#defiepam(keyword=None):ie=PAMIE(timeOut=300)ie._ie.Navigate(http://www.baidu.com)#==============关头词模块#ifie.setTextBox("wd",keyword)!=False:ifie.clickButton("su")!=None:sleep(3)ifie.getLink(unicode("灵动收集","cp936"))!=None:ie.clickLink(ie.getLink(unicode("灵动收集","cp936")))#else:#ie.clickLink(ie.getLink(unicode("[%s]"%i,"cp936")))#ie.clickLink(ie.getLink(unicode("[%s]"%p,"cp936")))#ie.clickLink(ie.getLink(unicode("灵动收集-办事器租用托管,VPS,假造主机,域名注册,企业邮局,收集...","cp936")))#i+=1#=============随机停止工夫=======sleep(randint(5,20))#=============准确填写本人电脑的COOKIE路劲#CleanDir("C:UsersliyunAppDataRoamingMicrosoftWindowsCookies")os.system(taskkill/IMiexplore.exe)#html页面下载函数defgetHtml(url,post_data=None,cookie=None):"""Fetchthetargethtmlurl-URLtofetchpost_data-POSTEntitycookie-CookieHeader"""ifDEBUG:print"getHtml:",urlresult=try:#createarequestrequest=urllib2.Request(url)cj=cookielib.CookieJar()#changeUser-Agentrequest.add_header("accept","*/*")request.add_header(User-Agent,Mozilla/5.0)#changeReferrerrequest.add_header(referer,http://www.51proxied.com/index.html)#ifhascookie,addcookieheaderifcookie:request.add_header(Cookie,cookie)#createaopeneropener=urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))#ifhaspostentityifpost_data:#encodepostdatapost_data=urllib.urlencode(post_data)response=opener.open(request,post_data)else:response=opener.open(request)result=response.read()response.close()#nocontent,dontsaveifnotresultorlen(result)==0:returnreturnresultexceptHTTPError,e:ifDEBUG:printErrorretrievingdata:,eprintServererrordocumentfollows:
#printe.read()returnexceptURLError,e:ifhasattr(e,reason):ifDEBUG:printFailedtoreachaserver.printReason:,e.reasonreturnelifhasattr(e,code):ifDEBUG:printTheservercouldn fulfilltherequest.printErrorcode:,e.codereturnexceptException,e:ifDEBUG:printereturn#必要考证的代办署理列表proxy_urls=[]proxy_urls.append({url:http://www.51proxied.com/http_anonymous.html,type:http_anonymous})#proxy_urls.append({url:http://www.51proxied.com/http_non_anonymous.html,type:http_transparent})importreimportsocketimporttimeimportthreadingresult=[]#线程同步锁lock=threading.Lock()defsynchronous(f):defcall(*args,**kwargs):lock.acquire()try:returnf(*args,**kwargs)finally:lock.release()returncall#先猎取一切待考证的代办署理proxies=[]forproxy_urlinproxy_urls:html=getHtml(proxy_url)#正则婚配猎取每代办署理rs=re.compile(r<tr.*?>*?<td.*?>d+?</td>*?<td>(S+?)</td>*?<td.*?>(S+?)</td>*?<td.*?>(S+?)</td>*?</tr>,re.DOTALL).findall(html)forrinrs:proxy={}#代办署理域名proxy=r#代办署理端口proxy=r#代办署理国度proxy=r#代办署理范例proxy=proxy_url#呼应工夫proxy=0ifnot(proxyinproxies):proxies.append(proxy)#猎取一个待考证代办署理@synchronousdefgetproxy():globalproxiesiflen(proxies)>0:returnproxies.pop()else:return#保留考证了局@synchronousdefsaveresult(proxy):globalresultifnot(proxyinresult):result.append(proxy)#线程函数defverify():while1:proxy=getproxy()#一切代办署理均已考证终了iflen(proxy)==0:returnprint"正在考证:%s,%s"%(proxy,proxy)#考证代办署理的可用性#创立一个TCP毗连套接字sock=socket.socket(socket.AF_INET,socket.SOCK_STREAM)#设置10超时sock.settimeout(10)try:start=time.clock()#毗连代办署理办事器sock.connect((proxy,int(proxy)))proxy=int((time.clock()-start)*1000)sock.close()saveresult(proxy)print"%s,%s考证经由过程,呼应工夫:%dms."%(proxy,proxy,proxy)exceptException,e:ifDEBUG:printeprint"%s,%s考证失利."%(proxy,proxy)#initthread_poolthread_pool=[]foriinrange(20):th=threading.Thread(target=verify,args=());thread_pool.append(th)#startthreadsonebyoneforthreadinthread_pool:thread.start()#collectallthreadsforthreadinthread_pool:threading.Thread.join(thread)#了局按呼应工夫从小到年夜排序result.sort(lambdax,y:cmp(x,y))foriteminresult:ifitem<60:ip=%s:%s%(item,item)printipifalterip(ip):iepam(keyword)
小知识:CentOS并不是第一个提供商业支持的RHEL克隆版,其他企业例如Oracle也提供了基于RedHat的自己的企业Linux发布版。 如果你想深入学习Linux,看不懂因为文档实在是太难了。写的最好的、最全面的文档都是英语写的,最先发布的技术信息也都是用英语写的。 甚至目前许多应用软件都是基于它的。可是没有哪一个系统是十分完美的。 发问的时候一定要注意到某些礼节。因为Linux社区是一个松散的组织、也不承担回复每个帖子的义务。它不是技术支持。 任何一个叫做操作系统的东西都是这样子构成的:内核+用户界面+一般应用程序。 学习Linux,应该怎样学,主要学些什么,一位Linux热心学习者,一段学习Linux的风云经验,历时十二个小时的思考总结,近十位网络Linux学习者权威肯定,为您学习Linux指明方向。 以前觉得Linux就跟dos一样,全是用命令窗口,相对于窗口界面来说多麻烦呀。 在学习linux的工程中,linux学习方法有很多种,这里是小编的学习心得,给大家拿出来分享一下。
页:
[1]