Java +selenium 爬Boss直聘中职位信息,薪资水平和职位描述

import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.support.ui.ExpectedCondition;
import org.openqa.selenium.support.ui.WebDriverWait;

import java.util.List;

public class BossSpider {

    public static void spider() {// 爬虫
        System.out.println("------Begin--------------");
        //String url ="https://m.zhipin.com/weijd/v2/job/41e876ca76f18ca51XVz0925ElI~";
        String url = "https://m.zhipin.com/weijd/v2/job/cc53ec27840e3f810nN42967FQ~~";

      System.setProperty("webdriver.chrome.driver", "/Tool/chromedriver");
       WebDriver driver = new ChromeDriver();
        driver.get(url);

        (new WebDriverWait(driver, 30)).until(new ExpectedCondition<Boolean>() {
            public Boolean apply(WebDriver dr) {
                int index = dr.getPageSource().indexOf("boss-message");
                if (index != -1) {
                    return true; // 找到,退出等待
                } else {
                    return false; // 未找到,继续等待
                }
            }
        });


        WebElement bossname = driver.findElement(By.cssSelector("div.boss-message"));
        System.out.println(bossname.getText());;

        List<WebElement> eleBoxs = driver.findElements(By.cssSelector("div.rec-position"));
        for (WebElement eleBox : eleBoxs) {
            WebElement eleTitle = eleBox.findElement(By.cssSelector("p.name"));
            WebElement eleAnswer = eleBox.findElement(By.cssSelector("p.salary"));
            System.out.println(eleTitle.getText() +"   薪资水平: "+eleAnswer.getText());
        }
        WebElement strength = driver.findElement(By.cssSelector("div.tags-position"));
        System.out.println(strength.getText());;


       // WebElement jobdetails = driver.findElement(By.xpath(".//*[@id='container']/div[2]/div[3]/div[2]/div[1]"));
        WebElement jobdetails = driver.findElement(By.className("detail-text"));


        System.out.println(jobdetails.getText());
        driver.quit();


    }

    public static void main(String[] args) {
        BossSpider.spider();
    }
}

  以前看到各个岗位到招聘信息一直在截图,心想着有没有简便办法将需要到信息输出来。今天有兴致,写了写代码。如上。

部分BOSS直聘中元素稍微有异,遇到找不到元素到情况,自己稍稍修改哦。

以下是我到截图:

猜你喜欢

转载自www.cnblogs.com/qianjinyan/p/9245871.html