|
@@ -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: 更新 用户相关信息
|
|
|
# 每次登录就更新一次相关数据,------公众号相关数据,人群报相关数据
|