예제 #1
0
                                        lstdate = find_tags(driver, dic_tag['review_date']) # 取得目前載入的評論數目

                                        if loading_count - record_time >= 30: # 目前loading次數 與 紀錄loading次數 相差 30次以上就更新紀錄
                                            if len(lstdate) > record_date_count: # 目前載入的評論數 > 紀錄的評論數-->就更新紀錄的評論數
                                                print('原本紀錄的loading次數:', record_time, ',更新為:', loading_count)
                                                print('原本紀錄的評論數:',record_date_count, ',更新為:', len(lstdate))
                                                record_date_count = len(lstdate)
                                                record_time = loading_count
                                            else:
                                                print('無法載入新的評論,Chrome 掛掉了,放棄載入新的評論', name)
                                                bError = True # 正常來說,每下滑一次就會取得新的評論,
                                                bfinal = True # 所以每下滑30次檢查一次,目前載入的評論數目會 > 已記錄的評論數才對
                                                break         # 若沒大於,代表它一直往下滑,但卻沒有載入新的評論數-->瀏覽器掛掉了
                                        loading_date = lstdate[-1].text

                                        print('saved_latest_date:',saved_latest_date, 'loading_date:', get_real_date(loading_date),', len(loading):' ,len(loading), loading[-1].is_displayed())
                                        # if '年' in loading_date and  int(loading_date.split(' ')[0]) > 4:
                                        #     print('目前最後一個評論已超過五年,不需再往下滑了')
                                        #     break
                                        if saved_latest_date != '' and get_real_date(loading_date) < saved_latest_date:
                                            print('目前最後一個評論日期', get_real_date(loading_date), '已 < 最新儲存日期:', saved_latest_date, ',不需再往下滑了')
                                            break
                                        elif len(loading) == 0:
                                            print('沒有section-loading了,停止往下滑')
                                            break
                                        if not loading[-1].is_displayed(): # 若元素沒有出現在畫面上,但仍要對它做動作,會出現錯誤"element not interactable”
                                            print('loading[-1]還沒出現,等2秒')
                                            time.sleep(2)
                                            if not loading[-1].is_displayed():
                                                print('loading[-1]沒有顯示,放棄載入新的評論', name)
                                                break
예제 #2
0
                                                # print(msg)
                                                logger.info(msg)
                                                record_date_count = len(
                                                    lstdate)
                                                record_time = loading_count
                                            else:
                                                msg = '無法載入新的評論,Chrome 掛掉了,放棄載入新的評論 ' + name
                                                # print(msg)
                                                logger.error(msg)
                                                bError = True  # 正常來說,每下滑一次就會取得新的評論,
                                                bfinal = True  # 所以每下滑20次檢查一次,目前載入的評論數目會 > 已記錄的評論數才對
                                                break  # 若沒大於,代表它一直往下滑,但卻沒有載入新的評論數-->瀏覽器掛掉了
                                        loading_date = lstdate[-1].text

                                        msg = '最新已儲存日期:' + saved_latest_date + ', 目前此筆評論日期:' + get_real_date(
                                            loading_date
                                        ) + ', loading displayed:' + str(
                                            loading[-1].is_displayed())
                                        # print(msg)
                                        logger.info(msg)

                                        if saved_latest_date != '' and get_real_date(
                                                loading_date
                                        ) < saved_latest_date:
                                            msg = '目前最後一個評論日期:' + get_real_date(
                                                loading_date
                                            ) + '已 < 最新儲存日期:' + saved_latest_date + ',不需再往下滑了'
                                            # print(msg)
                                            logger.info(msg)
                                            break
                                        elif len(loading) == 0: