您的位置:首页 > 其它

学习笔记(二) 根据发帖时间,删除相关帖子

2018-01-29 13:52 751 查看
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)+'秒')
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐