瀏覽代碼

MOD:更新cookie

cxyu 3 年之前
父節點
當前提交
6db16d4451
共有 1 個文件被更改,包括 31 次插入27 次删除
  1. 31 27
      wechat_action/login_ad.py

+ 31 - 27
wechat_action/login_ad.py

@@ -22,13 +22,11 @@ class LogIn:
     # TODO:整体运行使用逻辑,需要修改几次
     def __init__(self, user_id):
         # 获取到单独服务商下的独立公众号页面
-        # TODO:之后的落地页创建,推广计划创建,改动service_name,wechat_name通过,login函数主动改动
         self.user_id = user_id
         self.driver = self.get_driver()
         self.db = DB(config=using_config)
         self.wechat_cookies_table = Table('wechat_cookies', self.db.metadata,
                                           autoload=True, autoload_with=self.db.engine)
-        self.sql_session = self.db.DBSession()
         # self.log_in()
         # self.select_ad_master()
 
@@ -40,11 +38,11 @@ class LogIn:
         # prefs = {"profile.managed_default_content_settings.images": 2, 'permissions.default.stylesheet': 2}
         # options.add_experimental_option("prefs", prefs)
 
-        # driver = webdriver.Remote(
-        #     # command_executor='http://192.168.1.101:4444/wd/hub',
-        #     command_executor='http://118.31.53.105:4555/wd/hub',
-        #     options=options)
-        driver = webdriver.Chrome(options=options)
+        driver = webdriver.Remote(
+            # command_executor='http://192.168.1.101:4444/wd/hub',
+            command_executor='http://118.31.53.105:4555/wd/hub',
+            options=options)
+        # driver = webdriver.Chrome(options=options)
         driver.maximize_window()
         return driver
 
@@ -67,8 +65,28 @@ class LogIn:
         WebDriverWait(self.driver, 6 * 60).until(lambda driver: self.driver.find_elements_by_link_text('广告投放'))
         logging.info('登录成功')
 
+    @staticmethod
+    def cookies_save(log_ad):
+        # 切换窗口,点击创建广告,切到广告页面
+        log_ad.driver.switch_to.window(log_ad.driver.window_handles[-1])
+        WebDriverWait(log_ad.driver, 100).until(lambda driver: driver.find_element_by_class_name(
+            'ui-mr-medium'))
+        # cookie 进行数据库保存
+        wechat_cookies = log_ad.wechat_cookie_pickle()
+        update_res = log_ad.wechat_cookies_table.update() \
+            .where(log_ad.wechat_cookies_table.c.user_id == log_ad.user_id) \
+            .values(cookies=wechat_cookies)
+        sql_session = log_ad.db.DBSession()
+        cursor = sql_session.execute(update_res)
+        sql_session.commit()
+        if cursor.rowcount == 0:
+            wechat_cookies_info = {'user_id': log_ad.user_id, 'cookies': wechat_cookies}
+            wechat_insert = sql_tools.save_wechat_cookies(wechat_cookies_info=wechat_cookies_info,
+                                                          table_wechat_cookies=log_ad.wechat_cookies_table)
+            sql_session.execute(wechat_insert)
+            sql_session.commit()
+
     def select_ad_master(self, service_name, wechat_name):
-        # TODO:每次切换服务商,cookie进行数据库保存
         logging.info('开始切换服务商')
         time.sleep(5)
         self.driver.execute_script('''
@@ -100,25 +118,7 @@ class LogIn:
         elements[0].click()
         time.sleep(1)
         logging.info('切换服务商成功')
-        # 切换窗口,点击创建广告,切到广告页面
-
-        self.driver.switch_to.window(self.driver.window_handles[-1])
-        WebDriverWait(self.driver, 100).until(lambda driver: driver.find_element_by_class_name(
-            'adui-button-hasLeftIcon'))
-
-        # cookie 进行数据库保存
-        wechat_cookies = self.wechat_cookie_pickle()
-        update_res = self.wechat_cookies_table.update() \
-            .where(self.wechat_cookies_table.c.user_id == self.user_id) \
-            .values(cookies=wechat_cookies)
-        self.sql_session.execute(update_res)
-        self.sql_session.commit()
-        if update_res.rowcount == 0:
-            wechat_cookies_info = {'user_id': self.user_id, 'cookies': wechat_cookies}
-            wechat_insert = sql_tools.save_wechat_cookies(wechat_cookies_info=wechat_cookies_info,
-                                                          table_wechat_cookies=self.wechat_cookies_table)
-            self.sql_session.execute(wechat_insert)
-            self.sql_session.commit()
+        self.cookies_save(self)
 
     @staticmethod
     def get_cookie(driver, login_cookie=True):
@@ -165,6 +165,10 @@ class LogIn:
         else:
             return True
 
+    def clock_wechat_user(self):
+        # TODO:用户登录之后,微信号和本地账号进行一个锁死
+        pass
+
     def upadte_user_info(self):
         # TODO: 更新 用户相关信息
         #  每次登录就更新一次相关数据,------公众号相关数据,人群报相关数据