Browse Source

update 吉祥幸福

zhangyong 1 year ago
parent
commit
e38fdbcfc5
1 changed files with 23 additions and 16 deletions
  1. 23 16
      jixiangxingfu/jixiangxingfu_recommend/jixiangxingfu_recommend.py

+ 23 - 16
jixiangxingfu/jixiangxingfu_recommend/jixiangxingfu_recommend.py

@@ -52,9 +52,13 @@ class JixiangxingfuRecommend:
         try:
             if env == "dev":
                 chromedriverExecutable = '/Users/wangkun/Downloads/chromedriver/chromedriver_v107/chromedriver'
+                # chromedriverExecutable = '/Users/tzld/Downloads/chromedriver_v111/chromedriver'  # 本地
+
                 # chromedriverExecutable = 'C:\\chromedriver\\chromedriver.exe'  # 阿里云 Windows
             else:
                 chromedriverExecutable = '/Users/piaoquan/Downloads/chromedriver'  # Mac 爬虫机器
+                # chromedriverExecutable = '/Users/tzld/Downloads/chromedriver_v111/chromedriver'  # 本地
+
                 # chromedriverExecutable = 'C:\\chromedriver\\chromedriver.exe'  # 阿里云 Windows
 
             Common.logger(log_type, crawler).info('启动微信')
@@ -109,7 +113,7 @@ class JixiangxingfuRecommend:
             driver.find_elements(By.XPATH, '//*[@text="祝福每天好运来相伴"]')[-1].click()
 
             # 获取视频信息
-            time.sleep(20)
+            time.sleep(10)
             # time.sleep(60)
             cls.get_videoList(log_type, crawler, driver, env)
 
@@ -135,12 +139,14 @@ class JixiangxingfuRecommend:
                 driver.switch_to.window(handle)
                 time.sleep(1)
                 try:
-                    video_list = driver.find_element(By.XPATH, '//wx-view[text()="视频"]')
-                    video_list.click()
-                    time.sleep(2)
-                    if len(cls.search_elements(driver, '//*[@class="customNavigationBar--titleBack2"]')) != 0:
-                        Common.logger(log_type, crawler).info("直接进入了视频详情,返回视频列表")
-                        cls.search_elements(driver, '//*[@class="customNavigationBar--titleBack2"]')[0].click()
+                    # video_list = driver.find_element(By.XPATH, '//wx-view[text()="视频"]')
+                    driver.find_element(By.XPATH, '//wx-view[text()="为您精选"]')
+
+                    # video_list.click()
+                    # time.sleep(2)
+                    # # if len(cls.search_elements(driver, '//*[@class="customNavigationBar--titleBack2"]')) != 0:
+                    # #     Common.logger(log_type, crawler).info("直接进入了视频详情,返回视频列表")
+                    # #     cls.search_elements(driver, '//*[@class="customNavigationBar--titleBack2"]')[0].click()
                     Common.logger(log_type, crawler).info('切换到小程序视频列表成功\n')
                     return
                 except NoSuchElementException:
@@ -210,7 +216,7 @@ class JixiangxingfuRecommend:
             driver.switch_to.window(handle)
             time.sleep(1)
             try:
-                video_url_element = driver.find_element(By.XPATH, '//wx-video[@class="video-section"]')
+                video_url_element = driver.find_element(By.XPATH, '//wx-video[@class="main-video-container"]')
                 video_url = video_url_element.get_attribute("src")
                 cls.find_ad(log_type, crawler, driver)
                 return video_url
@@ -224,19 +230,20 @@ class JixiangxingfuRecommend:
         # Common.logger(log_type, crawler).info('关闭广告')
         # size = driver.get_window_size()
         # TouchAction(driver).tap(x=int(size['width'] * 0.5), y=int(size['height'] * 0.1)).perform()
+        driver.press_keycode(AndroidKey.BACK)
         # 切换到小程序
         cls.check_to_applet(log_type, crawler, driver)
-
-        time.sleep(10)
+        time.sleep(5)
         index = 0
+
         while True:
             try:
-                if cls.search_elements(driver, '//wx-view[@class="video-list-container"]') is None:
+                if cls.search_elements(driver, '//wx-view[@class="list-container"]') is None:
                     Common.logger(log_type, crawler).info('窗口已销毁\n')
                     return
 
                 Common.logger(log_type, crawler).info('获取视频列表\n')
-                video_elements = cls.search_elements(driver, '//wx-view[@class="video-item"]')
+                video_elements = cls.search_elements(driver, '//wx-view[@class="listCardVideo--video-title"]')
                 if video_elements is None:
                     Common.logger(log_type, crawler).warning(f'video_elements:{video_elements}')
                     return
@@ -251,7 +258,7 @@ class JixiangxingfuRecommend:
                         Common.logger(log_type, crawler).info('到底啦~\n')
                         return
                     cls.i += 1
-                    cls.search_elements(driver, '//wx-view[@class="video-item"]')
+                    cls.search_elements(driver, '//wx-view[@class="listCardVideo--video-title"]')
 
                     Common.logger(log_type, crawler).info(f'拖动"视频"列表第{cls.i}个至屏幕中间')
                     time.sleep(3)
@@ -261,9 +268,9 @@ class JixiangxingfuRecommend:
                     # cover_url = video_element.find_elements(By.XPATH, '//wx-image[@class="video-cover-img"]')[cls.i - 1].get_attribute('src')
                     # play_cnt = video_element.find_elements(By.XPATH, '//wx-view[@class="video-play-num"]')[cls.i - 1].text
 
-                    video_title = video_element.find_elements(By.XPATH, '//wx-view[@class="video-title"]')[index+i].text
-                    cover_url = video_element.find_elements(By.XPATH, '//wx-image[@class="video-cover-img"]')[index+i].get_attribute('src')
-                    play_cnt = video_element.find_elements(By.XPATH, '//wx-view[@class="video-play-num"]')[index+i].text
+                    video_title = video_element.find_elements(By.XPATH, '//wx-view[@class="listCardVideo--video-title"]')[index+i].text
+                    cover_url = video_element.find_elements(By.XPATH, '//wx-image[@class="listCardVideo--cover-img"]')[index+i].get_attribute('src')
+                    play_cnt = video_element.find_elements(By.XPATH, '//wx-view[@class="listCardVideo--play-num"]')[index+i].text
 
                     if "万" in play_cnt:
                         play_cnt = int(play_cnt.split("万")[0])*10000