文章目录
- 前言
- 一、环境准备
- 二、查询文章质量分
- 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配置
<!-- https://mvnrepository.com/artifact/org.jsoup/jsoup -->
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
<dependency>
<groupId>org.seleniumhq.selenium</groupId>
<artifactId>selenium-java</artifactId>
<version>4.9.1</version>
</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!");
}
总结
单篇查询文章质量分至此结束