[Selenium] 通过Java+Selenium查询文章质量分


文章目录

  • 前言
  • 一、环境准备
  • 二、查询文章质量分
    • 2.1、修改pom.xml配置
    • 2.2、配置Chrome驱动
    • 2.3、引入浏览器配置
    • 2.4、设置无头模式
    • 2.5、启动浏览器实例,添加配置信息
    • 2.6、访问质量分地址
    • 2.7、窗口设置
    • 2.8、定位到输入框并输入博文地址
    • 2.9、定位到查询按钮并点击
    • 2.10、强制等待1s,并转换为jsoup文档处理
    • 2.11、获取博文标题
    • 2.12、获取博文作者和发布时间
    • 2.13、获取博文质量分
    • 2.14、获取博文质量分建议
    • 2.15、打印结果
    • 2.16、效果
  • 三、代码
  • 总结


前言

大家好,我是青花,本篇给大家分享一下《通过Java+Selenium查询文章质量分》。


一、环境准备

浏览器:本篇使用的是Chrome
Chrome驱动版本:113
Java版本:Jdk1.8
selenium版本: 4.9.1


二、查询文章质量分

2.1、修改pom.xml配置

	
    <dependency>
         <groupId>org.jsoupgroupId>
         <artifactId>jsoupartifactId>
         <version>1.11.3version>
     dependency>

     <dependency>
         <groupId>org.seleniumhq.seleniumgroupId>
         <artifactId>selenium-javaartifactId>
         <version>4.9.1version>
     dependency>

2.2、配置Chrome驱动

	public final static String CHROMEDRIVERPATH = "/Users/apple/Downloads/chromedriver_mac64/chromedriver";
	System.setProperty("webdriver.chrome.driver", SeleniumUtil.CHROMEDRIVERPATH );//    	chromedriver localPath

2.3、引入浏览器配置

	 WebDriver driver;
	 ChromeOptions chromeOptions = new ChromeOptions();

2.4、设置无头模式

	chromeOptions.addArguments('--headless')
	chromeOptions.addArguments("--remote-allow-origins=*");

2.5、启动浏览器实例,添加配置信息

	driver = new ChromeDriver(chromeOptions);

2.6、访问质量分地址

	driver.get('https://www.csdn.net/qc')

2.7、窗口设置

	chromeOptions.addArguments("–no-sandbox");  //--start-maximized

2.8、定位到输入框并输入博文地址

   //定位到输入框
    WebElement inputSelectE = driver.findElement(By.cssSelector("input.el-input__inner"));
    //输入文字地址
    inputSelectE.sendKeys(blog_url);

2.9、定位到查询按钮并点击

   //定位查询按钮
   WebElement qcSelectE = driver.findElement(By.cssSelector("div.trends-input-box-btn"));
   //点击查询按钮
   qcSelectE.click();

2.10、强制等待1s,并转换为jsoup文档处理

  SeleniumUtil.sleep(1000);
  
  获取右边区域 -- 文章质量分结果区域
  WebElement mainSelectE = driver.findElement(By.cssSelector("div.csdn-body-right"));

  //转化为Jsoup文档处理
   Document doc = Jsoup.parse( mainSelectE.getAttribute("outerHTML") );

2.11、获取博文标题

   String title = doc.select("span.title").text();

2.12、获取博文作者和发布时间

    String posttime = doc.select("span.name").text();

2.13、获取博文质量分

    String score = doc.select("p.img").text();

2.14、获取博文质量分建议

    String remark = doc.select("p.desc").text();

2.15、打印结果

    log.info("文章标题:{} , 作者和发布时间:{} , 质量分:{} , 博文建议:{}" , title , posttime , score , remark );

2.16、效果

文章标题:《项目实战》构建SpringCloud alibaba项目(三、构建服务方子工程store-user-service) , 作者和发布时间:- 青花锁 · 2023-06-21 18:20:46 - , 质量分:86 , 博文建议:文章质量良好


三、代码

	/**
     *  获取文章质量分数据
     * @throws IOException
     */
    void csdnQcBySelenium() {
        log.info("csdnQcBySelenium start!");

        String blog_url = "https://blog.csdn.net/s445320/article/details/131332238";

        System.setProperty("webdriver.chrome.driver", SeleniumUtil.CHROMEDRIVERPATH );// chromedriver localPath
        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("--remote-allow-origins=*");
        chromeOptions.addArguments("–no-sandbox");  //--start-maximized

        WebDriver driver = new ChromeDriver(chromeOptions);

        driver.get("https://www.csdn.net/qc");

        SeleniumUtil.sleep(1000);

        //定位到输入框
        WebElement inputSelectE = driver.findElement(By.cssSelector("input.el-input__inner"));
        //输入文字地址
        inputSelectE.sendKeys(blog_url);

        SeleniumUtil.sleep(100);

        //定位查询按钮
        WebElement qcSelectE = driver.findElement(By.cssSelector("div.trends-input-box-btn"));
        //点击查询按钮
        qcSelectE.click();

        SeleniumUtil.sleep(1000);

        WebElement mainSelectE = driver.findElement(By.cssSelector("div.csdn-body-right"));

        //转化为Jsoup文档处理
        Document doc = Jsoup.parse( mainSelectE.getAttribute("outerHTML") );

        //获取文章标题
        String title = doc.select("span.title").text();

        //获取作者和发布时间
        String posttime = doc.select("span.name").text();

        //获取质量分
        String score = doc.select("p.img").text();

        //获取博文质量分建议
        String remark = doc.select("p.desc").text();

        //打印结果
        log.info("文章标题:{} , 作者和发布时间:{} , 质量分:{} , 博文建议:{}" , title , posttime , score , remark );

        driver.quit();
        log.info("csdnQcBySelenium end!");

    }

总结

单篇查询文章质量分至此结束

你可能感兴趣的:(Selenium,Java爬虫,java,selenium)