1 #coding:utf8
2 '''
3 题目三:
4 有配置文件有类似下面的配置:
5 http://192.168.41.55/img/9981|11|200
6 http://192.168.41.55/img/9982|11|200
7 http://192.168.41.55/img/9983|11|200
8 http://192.168.41.55/img/9984|11|200
9 http://192.168.41.55/img/9985|11|200
10
11 编写一个脚本,要求如下:
12 1. 读取配置文件,对每一个url进行检查.
13 例如http://192.168.41.55/img/9985|11|200, 这个url返回的结果应该包含"11"两个字,并且HTTP状态码是200, 否则报错。
14 2. 需支持并行的检查多个链接
15 '''
16 import re, urllib2
17 import threading
18 import time
19 index=0
20 rlock=threading.RLock()
21 class ExeThread(threading.Thread):
22 def __init__(self, path):
23 self.path=path
24 super(ExeThread, self).__init__()
25 def run(self):
26 #同步锁
27 rlock.acquire()
28 global index
29 temp=open(self.path)
30 temp.seek(index)
31 for i in range(100):
32 cnt=temp.readline()
33 exee(cnt)
34 index+=len(cnt)+1
35 #同步锁
36 rlock.release()
37 def exee(cnt):
38 if len(cnt)==0:
39 return
40 url, tag, code=cnt.split('|')
41 a=urllib2.urlopen(url)
42 content=a.read()
43 if tag in content and int(code)==a.code:
44 pass
45 else:
46 print '%serror'%cnt
47 path='f:/temp/html.txt'
48 for i in range(100):
49 exec('th=ExeThread(path);th.start()')
50