JAVA基于selenium的爬虫(五、知乎demo---已经偏离原主题)

知乎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,还是这个系列的项目,后续试试爬大量知乎用户数据。

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值