Пример #1
0
 def refresh_cookies(self, ck_dir):
     """
         refresh cookie db
     """
     idx = 0
     # del all cookies
     if os.path.isdir(cookie_dir):
         shutil.rmtree(cookie_dir)
     os.mkdir(cookie_dir)
     # add cookie from folder
     accounts = []
     for root, dirs, files in os.walk(ck_dir):
         for filespath in files:
             full_name = os.path.join(root, filespath)
             with open(full_name) as f:
                 for line in f.readlines():
                     if line:
                         u, p = line.split('\t')
                         if u and p:
                             accounts.append((u.strip(), p.strip()))
     # save cookie
     for u, p in accounts:
         opener = MechanizeOpener(
             user_agent=
             'Baiduspider+(+http://www.baidu.com/search/spider.htm)',
             timeout=10)
         opener.browser.set_proxies({'http': get_ip_proxy(size=10)})
         lm = WeiboLogin(opener, u, p)
         try:
             status = lm.login()
         except Exception as ex:
             self.logger.warn("login error:%s" % u)
             self.logger.error(ex)
             continue
         if status:
             idx += 1
             opener.cj.save(os.path.join(cookie_dir, '%d.txt' % idx),
                            ignore_discard=True,
                            ignore_expires=True)
             self.validated.append("%s\t%s\r\n" % (u, p))
         opener.close()