在写爬虫程序的时候,会遇到一些特殊情况,比如,爬取某些网页的时候,网页当前页面是不存在下一页的按钮,当你将下拉框拉到底部时,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控制