知乎demo篇:
泻药,刚下飞机,我没写过爬虫,但是在我看来这个东西应该是下面这个样子的:
代码:
//路径配置
System.setProperty("webdriver.firefox.bin","D:\\Mozilla Firefox\\firefox.exe");
//初始化一个火狐浏览器实例
WebDriver driver = new FirefoxDriver();
//最大化窗口
driver.manage().window().maximize();
// get()打开一个站点
driver.get("https://www.zhihu.com/people/se-shang-fang-bu-bo-shi/activities");
//getTitle()获取当前页面title的值
System.out.println("当前打开页面的标题是: "+ driver.getTitle());
try{
//强制等待等8秒
Thread.sleep(8000);
}catch (Exception e){
e.printStackTrace();
}
首先把行业和性别解析出来
//名称
String userName = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[1]/h1/span[1]")).getText();
//title
String userTitle = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[1]/h1/span[2]")).getText();
//公司
String company = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[2]/div/div/div[1]")).getText();
//性别
String sex = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[2]/div/div/div[2]/div")).getAttribute("class");
if (sex.contains("female")) {
sex = "男";
} else {
sex = "女";
}
System.out.println("姓名:" + userName + " title:" + userTitle + " 公司:" + company + " 性别:" + sex);
接下来点击“查看详细资料”
右击copyXpath,然后放在代码里
//点击按钮
driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[3]/button")).click();
然后开始解析下图
代码:
//居住地
String live = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[2]/div/div/div[1]/div")).getText();
//行业
String trade = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[2]/div/div/div[2]/div")).getText();
//职业经历
String jobHistory = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[2]/div/div/div[3]/div")).getText();
//个人简介
String individualResume = driver.findElement(By.xpath("//*[@id=\"ProfileHeader\"]/div/div[2]/div/div[2]/div[2]/div/div/div[4]/div")).getText();
System.out.println("居住地:" + live + " 行业: " + trade + " 职业经历: " + jobHistory + " 个人简介: " + individualResume);
//关闭并退出浏览器
driver.quit();
效果图:
这就是一个非常基础简单的教程了,完整代码已传github,还是这个系列的项目,后续试试爬大量知乎用户数据。