|
@@ -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
|