在写爬虫程序的时候,会遇到一些特殊情况,比如,爬取某些网页的时候,网页当前页面是不存在下一页的按钮,当你将下拉框拉到底部时,JS会自动加载下一页的内容,这种情况下,调用爬虫的话,无法通过获取下一页的按钮标签点击下一页来进入下一页,例如:推特。所以这篇博文就是解决此问题的。
需要jar包:selenium
static {
System.setProperty("webdriver.chrome.driver", "chromedriver.exe");
}
public static void main(String[] args) throws IOException, InterruptedException {
String url = "xxxxx"; //爬取的网址
WebDriver driver = new ChromeDriver(); //这里用谷歌驱动爬虫,也可以用Firefox或者jsoup
driver.get(url);
//for循环控制自动滚动下一页的页数,我这里也10页为例子
for (int j = 0; j < 10; j++) {
//调用方法滚动下一页
scrollDown(driver);
try {
//这里每页停留两秒,可以自行设置
Thread.sleep(2000);
} catch (InterruptedException e) {
e.printStackTrace();
}
//打印每一页的源码
System.out.println(driver.getPageSource());
}
}
//调用JS滚动下一页
public static void scrollDown(WebDriver driver) {
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("scrollTo(0,10000)");
}
更多推荐
爬虫自动滚动下一页JS控制
发布评论