- 論壇徽章:
- 0
|
1.你是如何學(xué)習(xí)Python的?看書(shū)?看視頻?還是?
主要是看電子書(shū),有時(shí)候也找點(diǎn)視頻看看。
2.你工作中有用到Python嗎?主要用來(lái)做什么?
工作中用到的python也不多。主要是做系統(tǒng)管理,小工具之類的
3.你覺(jué)得Python跟其他腳本語(yǔ)言比優(yōu)勢(shì)在哪?
優(yōu)勢(shì)是系統(tǒng)庫(kù)豐富。linux平臺(tái)都默認(rèn)安裝python,方便。
4.談?wù)凱ython在自動(dòng)化運(yùn)維中的應(yīng)用。
正在研究自動(dòng)化運(yùn)維。向劉天斯學(xué)習(xí)。
5.給出一個(gè)你自己寫(xiě)的Python腳本(最好有詳細(xì)注釋)。
水平有限,見(jiàn)笑了。- #!/usr/bin/env python
- #coding=UTF-8
- '''http://www.proxycn.cn/html_proxy/countryDX-1.html'''
- import urllib2
- import cookielib
- import re
- import threading
- import Queue
- import time
- lock = threading.Lock()
- que = Queue.Queue()
- proxy_list=[('10.10.61.4','3128','HTTP'),]
- p = re.compile(r'''document.write\("(.+?)"\);\r\ndocument.write\("(.+?)"\);\r\ndocument.write\("(.+?)"\);\r\ndocument.write\("(.+?)"\);
- \r\n//--></SCRIPT></TD><TD class="list">(.+?)</TD><TD class="list">(.+?)</TD><TD class="list">(.+?)</TD>''',re.M)
- def getProxyList(queue):
- # req = urllib2.urlopen('http://www.proxycn.cn/html_proxy/countryDX-1.html')
- for i in range(1,2):
- req = urllib2.urlopen('http://www.proxycn.cn/html_proxy/http-%d.html'% (i))
- content = req.read()
- #print content
- #m = p.findall(content.decode('cp936').encode('utf-8'))
- m = p.findall(content)
- for item in m:
- n_set = (''.join(item[0:4]),item[4],item[5])
- proxy_list.append(n_set)
- # print n_set
- queue.put(n_set)
- # print proxy_list
- class checkProxy(threading.Thread):
- def __init__(self,que,lock):
- threading.Thread.__init__(self)
- self.queue = que
- self.test_url = 'http://www.baidu.com'
- self.test_str = '030173'
- self.timeout = 5
- self.lock = lock
- def run(self):
- print 'aaa'
- time.sleep(2)
- while True:
- self.lock.acquire()
- if self.queue.empty():
- break
- item = self.queue.get()
- print item
- self.testProxy(item)
- self.queue.task_done()
- self.lock.release()
- def testProxy(self,proxy):
- print 'in testProxy'
- try:
- cj = cookielib.CookieJar()
- openser = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
- proxy_handler = urllib2.ProxyHandler({"http": 'http://%s:%s' %(proxy[0],proxy[1])})
- openser = urllib2.build_opener(proxy_handler)
- urllib2.install_opener(openser)
- request = urllib2.Request(self.test_url)
- request.add_header('User-Agent','Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; MDDCJS; rv:11.0) like Gecko')
- resp = urllib2.urlopen(request,timeout=self.timeout)
- print proxy
- if resp.read().find(self.test_str):
- print 'ok'
- except Exception,e:
- print e.message
- if __name__== '__main__':
- # getProxyList()
- worker_thread = threading.Thread(target=getProxyList,args=(que,))
- worker_thread.start()
- lock = threading.Lock()
- for i in range(10):
- t = checkProxy(que,lock)
- t.start()
復(fù)制代碼 |
|