首页 > 解决方案 > Selenium 的 Youtube 网页抓取

问题描述

Reviews =pd.DataFrame()
k=1
controls > div.ytp-left-controls > a.ytp-next-button.ytp-button')
for i in range(10):
    
    for l in range(k):
        
        for j in range(k):
            
            all_posts = driver.find_elements_by_xpath('//*[@id="container"]/h1/yt-formatted-string')
            all_posts = [x.text for x in all_posts]
            posts = pd.Series(all_posts)
            
            all_views = driver.find_elements_by_xpath("//*[@class='short-view-count style-scope ytd-video-view-count-renderer']")
            all_views = [x.text for x in all_views]
            views = pd.Series(all_views)
            
            all_likes = driver.find_elements_by_xpath('/html/body/ytd-app/div/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[8]/div[2]/ytd-video-primary-info-renderer/div/div/div[3]/div/ytd-menu-renderer/div/ytd-toggle-button-renderer[1]/a/yt-formatted-string')
            all_likes = [x.text for x in all_likes]
            likes = pd.Series(all_likes)
            
            all_dislikes = driver.find_elements_by_xpath('/html/body/ytd-app/div/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/div[8]/div[2]/ytd-video-primary-info-renderer/div/div/div[3]/div/ytd-menu-renderer/div/ytd-toggle-button-renderer[2]/a/yt-formatted-string')
            all_dislikes = [x.text for x in all_dislikes]
            dislikes = pd.Series(all_dislikes)
            
            all_comments = driver.find_elements_by_xpath('/html/body/ytd-app/div/ytd-page-manager/ytd-watch-flexy/div[5]/div[1]/div/ytd-comments/ytd-item-section-renderer/div[1]/ytd-comments-header-renderer/div[1]/h2/yt-formatted-string/span[1]')
            all_comments = [x.text for x in all_comments]
            comments = pd.Series(all_comments)
            
            df = pd.DataFrame({"Title":posts, "Views":views, "Likes":likes, "Dislikes":dislikes, "No of Comments":comments})
            
        Reviews = Reviews.append(df) 
        time.sleep(3)
    
    
    next= driver.find_element_by_css_selector('#movie_player > div.ytp-chrome-bottom > div.ytp-chrome-
    next.click()
    time.sleep(2)
    
Reviews

  

试图抓取视频标题等数据,不。喜欢和不喜欢,没有。的 。评论,来自 YouTube 特定频道的视频的总观看次数

所以我决定点击频道中的 play_all 按钮,以便连续播放所有视频

但是下一个播放按钮应该循环播放,以便每次从特定视频中完成抓取时播放下一个视频

但是每次循环开始时,下一个播放按钮循环都不起作用 YouTube 下一个按钮在此代码中不起作用下一个播放按钮由关键字表示(下一个)

我正在尝试 next.click() 一切正常,但下一次单击无法正常工作,因为循环应该 goo 并且 next.click() 显示错误

标签: pythonseleniumweb-scrapingvideoyoutube

解决方案


推荐阅读