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

前端之家收集整理的这篇文章主要介绍了Java +selenium 爬Boss直聘中职位信息,薪资水平和职位描述前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

<div class="cnblogs_Highlighter">
<pre class="brush:java;collapse:true;;gutter:true;">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; // 找到,<a href="/tag/tuichu/" target="_blank" class="keywords">退出</a>等待
            } else {
                return false; // 未找到,继续等待
            }
        }
    });


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

    List<WebElement> ele<a href="/tag/Box/" target="_blank" class="keywords">Box</a>s = driver.findElements(By.cssSelector("div.rec-position"));
    for (WebElement ele<a href="/tag/Box/" target="_blank" class="keywords">Box</a> : ele<a href="/tag/Box/" target="_blank" class="keywords">Box</a>s) {
        WebElement eleTitle = ele<a href="/tag/Box/" target="_blank" class="keywords">Box</a>.findElement(By.cssSelector("p.name"));
        WebElement eleAnswer = ele<a href="/tag/Box/" target="_blank" class="keywords">Box</a>.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直聘中元素稍微有异,遇到找不到元素到情况,自己稍稍修改哦。

以下是我到截图:

猜你在找的Java相关文章