爬虫自动滚动下一页JS控制
在写爬虫程序的时候,会遇到一些特殊情况,比如,爬取某些网页的时候,网页当前页面是不存在下一页的按钮,当你将下拉框拉到底部时,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)"); }
上一篇:
IDEA上Java项目控制台中文乱码