Pārlūkot izejas kodu

完成 hello 私信回复

mrh 1 gadu atpakaļ
vecāks
revīzija
e7131986d7
2 mainītis faili ar 83 papildinājumiem un 2 dzēšanām
  1. 81 0
      dp/chat.py
  2. 2 2
      dp/page.py

+ 81 - 0
dp/chat.py

@@ -0,0 +1,81 @@
+import time
+import page
+from conf.config import logger
+
+class Chat:
+    homepage = 'https://www.douyin.com/user/self'
+    def __init__(self, ) -> None:
+        self.tab_home = page.page.tab
+        # logger.info(f"{self.tab_home.url}") 
+        self.check_home_page()
+    
+    def run(self):
+        stranger_msg_count = 0
+        while True:
+            self.check_home_page()
+            self.tab_home.scroll.to_top()
+            ele_im = self.tab_home.ele('xpath://div[@data-e2e="im-entry"]')
+            ele_im_red_pot = ele_im._find_elements('xpath://div[@class="LFWqFfyH isLight"]', raise_err=False)
+            # 存在私信小红点
+            ele_has_msg = ele_im_red_pot._find_elements('xpath:/div',raise_err=False)
+            if ele_has_msg:
+                logger.info(f"有未读消息 {ele_has_msg.text}")
+                ele_im.click()
+                self.response_frined()
+
+            stranger_msg_count +=1
+            if stranger_msg_count > 10:
+                stranger_msg_count = 0
+                ele_im.click()
+                ele_stranger = ele_im._find_elements("陌生人消息", raise_err=False)
+                if ele_stranger:
+                    logger.info(f"有陌生人消息")
+                    self.response_stranger()
+            time.sleep(1)
+    
+    def response_frined(self):
+        logger.info(f"回复好友")
+        # 找到私信弹出窗口
+        # data-e2e="listDlg-container"
+        ele_list_dlg = self.tab_home.ele('xpath://div[@data-e2e="listDlg-container"]')
+        logger.info(f"ele_list_dlg.html {ele_list_dlg.html}")
+        # 找到未读消息小红点
+        # class="hcPUqxqn"
+        ele_msg_red_pot = ele_list_dlg.ele('xpath://div[@class="hcPUqxqn"]')
+        ele_msg_red_pot.click()
+        # 找到聊天会话框
+        # class="qbjZBApl popShadowAnimation"
+        ele_popShadowAnimation = self.tab_home.ele('xpath://div[@class="qbjZBApl popShadowAnimation"]')
+        # 找到输入框
+        # data-e2e="msg-input"
+        ele_input = ele_popShadowAnimation.ele('xpath://div[@data-e2e="msg-input"]')
+        ele_input.click()
+        ele_input.input("hello")
+
+        # 找到发送按钮
+        # span class="e2e-send-msg-btn"
+        ele_send = ele_popShadowAnimation.ele('xpath://span[contains(@class, "e2e-send-msg-btn")]')
+        ele_send.click()
+        ele_popShadowAnimation.ele('退出会话').click()
+
+        logger.info(f"回复成功")
+
+    def response_stranger(self):
+        logger.info(f"回复陌生人")
+
+    def check_home_page(self):
+        if "/user/self" not in self.tab_home.url:
+            self.tab_home.get(self.homepage)
+
+
+def main():
+    self = Chat()
+    self.run()
+    # ele_im = self.tab_home.ele('xpath://div[@data-e2e="im-entry"]')
+    # logger.info(f"{ele_im.html}")
+    # # <div class="LFWqFfyH isLight">
+    # has_msg_ele = ele_im.ele('xpath://div[@class="LFWqFfyH isLight"]')
+    # logger.info(f"{has_msg_ele.html}")
+
+if __name__ == "__main__":
+    main()

+ 2 - 2
dp/page.py

@@ -25,7 +25,7 @@ logger.debug(f"process_id {page.process_id}")
 page.set.load_mode.none()
 # page.set.NoneElement_value('没找到')
 # page.get("edge://version/")
-page.get("http://www.douyin.com")
-cookies = page.cookies()
+# page.get("http://www.douyin.com")
+# cookies = page.cookies()
 # logger.debug(f"{cookies}")
 # page.new_tab("edge://version/")