ネットワークスクロール項目:CGVコメントスクロール

3670 ワード

CGVコメントスクロール


以前習ったネットスクロールを利用して、「映画評論」を検索します.
映画界の巨匠CGVには多くのコメントがあり、スクロールも許可されているため、法律的な問題はないようだ.
(/ロボット.txt確認済み…)

1.映画名を入力


まずコメントを見る映画を入力します.

2.ホームページへのログイン


chrome dirverを使用してホームページを開きます.
chrome_driver = '/Users/user/Downloads/chromedriver'
driver = webdriver.Chrome(chrome_driver)
driver.get("https://www.cgv.co.kr/")

3.映画検索

  • に入力された映画名を検索ウィンドウに代入します.
  • driver.find_element_by_id("header_keyword").send_keys(movie) # 영화제목 입력
    driver.find_element_by_id("header_keyword").send_keys('\n') # 검색 후 '엔터'
    enterが入力されているので、ページはすぐに移動します.

    4.複数の映画を選択


    「タイトルが非常に具体的に書かれていない限り、入力値を含む映画はインデックスされます.」「アベンジャーズ」のように、シリーズも複数のシリーズにインデックスされます.1本の映画を検索するだけで大丈夫ですが、複数の映画を検索する場合を考えると一番前の映画を検索したいです.シリーズ映画『アベンジャーズ』『ハリー・ポッター』では検索結果が異なり、スクロール時の位置も異なる.

    そこで,条件文を用いてXPathを検索し,XPathアドレス小からチェックしてページに入る.
    # 첫번째 영화의 위치를 찾은 결과 아래와 같이 두 가지로 XPath주소가 나온다.
    if driver.find_elements_by_xpath('//*[@id="contents"]/div/div[3]'):
        WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[2]/div[3]/div[2]/div/div[3]/div[1]/div/div[1]/ul/li[1]/div[2]/a/strong'))).click()
    else:    
        WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, '/html/body/div[2]/div[3]/div[2]/div/div[2]/div[1]/div/div[1]/ul/li[1]/div[2]/a/strong'))).click()

    5.検索された6つの映画のコメントを得る


    最初の映画のページに登録すると、6つのコメントがあります.6つのコメントの「日付」「コメント」をインポートし、リストに含まれるコードを作成します.
    for j in range(1, 6):
                # 한 Page에 6개의 날짜 가져오기
                review_date = driver.find_element_by_xpath('/html/body/div[2]/div[3]/div[2]/div/div[4]/div[1]/div[6]/div[3]/ul/li[{0}]/div[2]/ul/li[2]/span[1]'.format(j)).text        
                # 한 Page에 6개의 리뷰 가져오기
                review_list = driver.find_element_by_xpath('/html/body/div[2]/div[3]/div[2]/div/div[4]/div[1]/div[6]/div[3]/ul/li[{0}]/div[3]'.format(j)).text
    
                # 날짜, 리뷰 list에 담기
                reveiw_dates.append(review_date)
                reveiw_lists.append(review_list)

    6.コメントページ1-10


    1ページに10個のコメントページがあります.繰り返し文で1~10を繰り返します.次の10個に回ると位置が変わるのでアドレスも変わります.条件文に分けて、どんな場合でも最初のコメントページから記入できます.
    if driver.find_elements_by_xpath('/html/body/div[2]/div[3]/div[2]/div/div[4]/div[1]/div[7]/ul/li[1]/a'):
                WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/div[3]/div[2]/div/div[4]/div[1]/div[7]/ul/li[{0}]/a".format(i)))).click()
            else:
                WebDriverWait(driver, 5).until(EC.element_to_be_clickable((By.XPATH, "/html/body/div[2]/div[3]/div[2]/div/div[4]/div[1]/div[7]/ul/li[{0}+2]/a".format(i)))).click()

    7.次の10個をクリック


    1~10個のコメントページを検索した後、「次の10個」ボタンをクリックして次のページに進みます.上記の方法でXPathアドレスを見つけて代入すれば完了です.
    (パスワードは秘密~)

    8.感じ


    スクロールゲームは初めてなので迷いました.本当に解いた后に大したことはないと感じます.XPathアドレスは「地域アドレス」ですか、「グローバルアドレス」ですか.交代で書いたので、次はもっときれいにできるはずです.スクロールはよく使う関数を覚えるだけで、ホームページにアドレスを入力すれば難しくありません.スクロール動画も録画されていますが、「velog」では動画をアップロードできません.