我最近想做一个爬取 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();
}
}
1
mumbler 307 天前
我爬 twitter 用 driver.execute_script("window.scrollBy(0,800)")就能向下滚动了
|
2
Hyschtaxjh 306 天前 via iPhone
微信網頁版思維?脫褲子放屁了吧,官方有 MTProto API ,去官網註冊一個 appID 直接接入。
|
3
zhady009 306 天前 via iPhone
|
4
zhady009 306 天前 via iPhone
|
6
tiRolin OP @Hyschtaxjh 确实,我刚刚知道还有这玩意,这下小丑了
|