class Lawman(Requester): """Posts and Users opeartor unit Delete post with post url Ban user with post url(Not avaiable now) """ def __init__(self, tieba_name="steam", cookie=None): Requester.__init__(self, tieba_name, cookie) def delete_post(self, delete_page_url): delete_page_response = self.get_content(delete_page_url) delete_confirm_url = delete_page_response.find('a', text='确认删除') delete_confirm_url = self.url_base + delete_confirm_url.get('href') delete_result = self.get_content(delete_confirm_url) return '成功删除' in delete_result.text def ban_user(self, post_url): # not avaiable in baidu now pass if __name__ == "__main__": cookie, _ = config_reader() worker = Lawman(cookie=cookie) print(worker.delete_post())
from eventloop import mainloop from common import config_reader import logging if __name__ == "__main__": cookie, tiebaName = config_reader() logging.basicConfig(filename='log.txt', level=logging.DEBUG, format='%(asctime)s %(message)s') while True: try: mainloop(tiebaName, cookie) except Exception as e: logging.warning(str(e))
import time import random import logging import judgemethods from common import config_reader def mainloop(tieba_name='steam', cookie=None): tieba_crawler = crawler.TiebaCrawler(tieba_name, cookie) tieba_judger = judger.Judger([judgemethods.TxnlpTextJudge()]) tieba_lawman = lawman.Lawman(tieba_name, cookie) logging.info('Starting crawling') post_list = tieba_crawler.get_posts() for post in post_list: if tieba_judger.judge(post): tieba_lawman.delete_post(post.get_del_url()) logging.info("{0} delete success".format(post.get_title())) logging.info("All judge finished") time.sleep(random.randint(20, 30)) if __name__ == "__main__": logging.basicConfig(filename='log.txt', level=logging.DEBUG, format='%(asctime)s %(message)s') user_cookie, tieba_name = config_reader() mainloop('dota2提问', user_cookie)
# get all url postfixes of posts except excellent post return posts_list @rediscache.postcache def __get_content_list(self, url_list): """ Get post content with given url list :param url_list: :return dict: """ content_list = {} for url in url_list: content = self.get_content(url) if content: content_list[url] = content time.sleep(config_intervaltime()) return content_list if __name__ == "__main__": cookie, _ = config_reader() tieba_worker = TiebaCrawler(cookie=cookie, tieba_name='dota2提问') posts = tieba_worker.get_posts() # print((list(map(str, posts)))) # posts = tieba_worker.get_posts() # print((list(map(str, posts)))) # print(list(map(str, posts[0].reply_list)))
from eventloop import EventLoop from common import config_reader import logging import sys, os if __name__ == "__main__": cookie, tiebaName = config_reader() logging.basicConfig(filename='log.txt', level=logging.DEBUG, format='%(asctime)s %(message)s') eventLoop = EventLoop(tiebaName, cookie) while True: try: eventLoop.loop() except Exception as e: logging.error("Service crashed : {0}".format(e))