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

129 天前
 tiRolin

我最近想做一个爬取 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();
    }
}

680 次点击
所在节点    Telegram
6 条回复
mumbler
129 天前
我爬 twitter 用 driver.execute_script("window.scrollBy(0,800)")就能向下滚动了
Hyschtaxjh
128 天前
微信網頁版思維?脫褲子放屁了吧,官方有 MTProto API ,去官網註冊一個 appID 直接接入。
zhady009
128 天前
zhady009
128 天前
tiRolin
128 天前
@zhady009 可以可以,太感谢您了
tiRolin
128 天前
@Hyschtaxjh 确实,我刚刚知道还有这玩意,这下小丑了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1008455

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX