V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
tiRolin
V2EX  ›  Telegram

Java 中 Selenium 框架如何实现对 telegram 网页版的页面往上滚动到顶部?

  •  
  •   tiRolin · 108 天前 · 653 次点击
    这是一个创建于 108 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我最近想做一个爬取 telegram 里番剧的爬虫,一是做来玩玩,二是爬好了之后不用我手动点下载可以自己在电脑上看

    现在的一个问题就是一个页面的内容就那些,想要爬取更多内容就需要另滚动条向上滚动,但是无论我是使用何种方法,这个页面就是不带动的,一直停在初始页面

    无论是使用 Actions 类还是使用 js 的方式都不太行,没有效果,运行完之后不会页面不会按照预期往上滚动,我试了很多方法都不太行,我没法了我来问问各位

    下面是我的代码,我这里的逻辑是登录时自己用二维码扫,然后他会自动选择第二个频道(在我的个人信息里这个频道就是我置顶的番剧频道),具体的爬取细节我就去掉了,因为这里只是要解决向上滚动的问题而已,各位可以看看我的代码,正好也用这个框架的大佬可以试试直接运行,看看在 TODO 里怎么补充就能令其实现向上滚动,小弟我先谢谢各位了

    或者大佬告诉我可能的解决方法也好,我会一个个去试的

    public class question {
        public static void main(String[] args) {
            try {
                crawler();
            } catch (Exception e) {
                System.out.println("------------------------------------------");
                e.printStackTrace();
            } finally {
    
            }
        }
    
        private static void crawler() throws Exception{
            System.getProperties().setProperty("webdriver.chrome.driver", "F:\\xxxxxxx\\chromedriver.exe");
            ChromeOptions options = new ChromeOptions();
            options.addArguments("--remote-allow-origins=*");
            ChromeDriver chromeDriver = new ChromeDriver(options);
            WebDriverWait wait = new WebDriverWait(chromeDriver, Duration.ofSeconds(10));
            Thread.sleep(3000);
    
            chromeDriver.get("https://web.tlgrm.app/");
            Thread.sleep(30 * 1000);
            WebElement element = wait.until(webDriver -> chromeDriver.findElement(By.xpath("//*[@id=\"LeftColumn-main\"]/div[2]/div/div[2]/div/div[2]/div[2]")));
            element.click(); //点击之后就选择了具体的频道了,右侧会展示频道信息
            Thread.sleep(3 * 1000);
            
            // TODO 此处需要实现页面向上滑动的需求
    
    //        chromeDriver.quit();
        }
    }
    
    
    6 条回复    2024-01-14 21:49:41 +08:00
    mumbler
        1
    mumbler  
       108 天前
    我爬 twitter 用 driver.execute_script("window.scrollBy(0,800)")就能向下滚动了
    Hyschtaxjh
        2
    Hyschtaxjh  
       107 天前 via iPhone
    微信網頁版思維?脫褲子放屁了吧,官方有 MTProto API ,去官網註冊一個 appID 直接接入。
    zhady009
        3
    zhady009  
       107 天前 via iPhone
    zhady009
        4
    zhady009  
       107 天前 via iPhone
    tiRolin
        5
    tiRolin  
    OP
       107 天前
    @zhady009 可以可以,太感谢您了
    tiRolin
        6
    tiRolin  
    OP
       107 天前
    @Hyschtaxjh 确实,我刚刚知道还有这玩意,这下小丑了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   2222 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 02:22 · PVG 10:22 · LAX 19:22 · JFK 22:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.