import re from New_MyPython.Community_MyThread.Requse.HttpReq import Http import time import threading ''' 思路 一、将帖子tid取出 二、根据tid,获取当前帖子时间 三、将时间转换为时间戳,用来做时间隔断 四、将通过时间戳分割出来的帖子删除,并返回tid时间 ''' def find(stri, html): strin = stri respone = re.findall(strin, html) return respone def tid(page): url = 'http://www.oppo.cn/thread/thread/index.json?page=%s&limit=21&uid=46344778' % page html = Http().get(url) st = '"id":"(.*?)","' tids = find(st, html) return tids def thread_time(page): tid_times = [] tids = tid(page) for i in tids: url = 'http://www.oppo.cn/thread-%s-1' % i # url = 'http://www.oppo.cn/thread-196321006-1' html = Http().get(url) stri = '</i>(.*?)</span>' _time = re.findall(stri, html) # print(_time[0], '字节长度--》',len(_time[0])) ''' 以下代码补充时间格式,满足时间戳转换 ''' if len(_time[0]) < 12: _time = '2018-' + _time[0] + ':00' # print('没有年份的时间叠加-----',_time) elif len(_time[0]) == 16: _time = _time[0] + ':00' # print('有年份的时间叠加>>>>>>', _time) tim = time_convert(_time) print('正在转换时间格式为时间戳..', tim) tid_times.append(tim) tid_time_zip = dict(zip(tid_times, tids)) return tid_times, tid_time_zip # 返回uid,便于辨别相关帖子 def time_convert(tim): # 将时间转换为时间戳 timeArray = time.strptime(tim, '%Y-%m-%d %H:%M:%S') timeStamp = int(time.mktime(timeArray)) return timeStamp def time_Format(tim): # 将时间格式化 timeArray = time.localtime(tim) otherStyleTime = time.strftime("%Y-%m-%d %H:%M:%S", timeArray) return otherStyleTime def del_thread(tid_dict, tim): for i in tim: time_int = int(i) if time_int > 1515979740: tid = tid_dict[i] _time = time_Format(time_int) url = 'http://i.thread.oppo.cn/thread/v1/index/delete.json?' data = {'token': '**TOKEN_AS0zrbkNjrkHPbnW5Q2C5aJ45fFbMM4%2F5S%2BPYk1ySObE8VD%2BN2BEkUMqy%2BhuprqU', # 'ukey': '**81765b375e5adf2862db3781716e04aceb71a1535748ef3c7d729ca8cc9608fba3964a930a6e692b825db8466ee02d75', 'tid': tid } html = Http().post(url, data) print(html) print('正在删除', tid, '\n发帖时间为', _time) else: tid = tid_dict[i] _time = time_Format(time_int) print('未删除', tid, '\n发帖时间为:', _time) class MyThread(threading.Thread): def __init__(self, name, page): super().__init__() self.name = name self.page = page self.lock = threading.Lock() def run(self): print(self.name + '线程开始') self.lock.acquire() tim, tid_dict = thread_time(self.page) del_thread(tid_dict, tim) self.lock.release() print(self.name + '线程结束') if __name__ == "__main__": # tim=['1516055220'] # tid_dict={'1516055220':'195233716'} strat_time=time.time() thread_name = ['thread1', 'thread2'] thread1=MyThread(thread_name[0],1) thread2=MyThread(thread_name[1],2) thread1.start() thread2.start() thread1.join() thread2.join() end_time=time.time() print('耗时:'+str(end_time-strat_time)+'秒')