- 论坛徽章:
- 0
|
1.你是如何学习Python的?看书?看视频?还是?
主要是看电子书,有时候也找点视频看看。
2.你工作中有用到Python吗?主要用来做什么?
工作中用到的python也不多。主要是做系统管理,小工具之类的
3.你觉得Python跟其他脚本语言比优势在哪?
优势是系统库丰富。linux平台都默认安装python,方便。
4.谈谈Python在自动化运维中的应用。
正在研究自动化运维。向刘天斯学习。
5.给出一个你自己写的Python脚本(最好有详细注释)。
水平有限,见笑了。- #!/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()
复制代码 |
|