2.引入jsoup访问网站
3.pom.xml
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.pshdhx</groupId>
<artifactId>pshdhx</artifactId>
<version>0.0.1-SNAPSHOT</version>
<dependencies>
<dependency>
<groupId>org.jsoup</groupId>
<artifactId>jsoup</artifactId>
<version>1.11.3</version>
</dependency>
</dependencies>
</project>
4.主程序
package com.pshdhx;
* 增加csdn点击数
* @author pshdhx
import java.awt.Desktop;
import java.io.IOException;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Node;
import org.jsoup.select.Elements;
public class AddCount {
private static Desktop desktop;//定义私有静态成员变量
public static ArrayList<String> strList = new ArrayList<String>();//定义String类型的泛型集合
public static List<String> get(){
Document doc;
Document doc2;
Document doc3;
Document doc4;
Document doc5;
try {
doc = Jsoup.connect("https://blog.csdn.net/pshdhx").get();
Elements elementsByTag = doc.getElementsByTag("h4");
for(int i=0;i<elementsByTag.size();i++) {
Node childNode = elementsByTag.get(i);
Node childNode2 = childNode.childNode(1);
strList.add(childNode2.attr("href"));
doc2 = Jsoup.connect("https://blog.csdn.net/pshdhx/article/list/2").get();
Elements elementsByTag2 = doc2.getElementsByTag("h4");
for(int i=0;i<elementsByTag2.size();i++) {
Node childNode = elementsByTag2.get(i);
Node childNode2 = childNode.childNode(1);
strList.add(childNode2.attr("href"));
doc3 = Jsoup.connect("https://blog.csdn.net/pshdhx/article/list/3").get();
Elements elementsByTag3 = doc3.getElementsByTag("h4");
for(int i=0;i<elementsByTag3.size();i++) {
Node childNode = elementsByTag3.get(i);
Node childNode2 = childNode.childNode(1);
strList.add(childNode2.attr("href"));
doc4 = Jsoup.connect("https://blog.csdn.net/pshdhx/article/list/4").get();
Elements elementsByTag4 = doc4.getElementsByTag("h4");
for(int i=0;i<elementsByTag4.size();i++) {
Node childNode = elementsByTag4.get(i);
Node childNode2 = childNode.childNode(1);
strList.add(childNode2.attr("href"));
doc5 = Jsoup.connect("https://blog.csdn.net/pshdhx/article/list/5").get();
Elements elementsByTag5 = doc5.getElementsByTag("h4");
for(int i=0;i<elementsByTag5.size();i++) {
Node childNode = elementsByTag5.get(i);
Node childNode2 = childNode.childNode(1);
strList.add(childNode2.attr("href"));
}catch(Exception e) {
e.printStackTrace();
return strList;
public static void browse(String uri){
if(Desktop.isDesktopSupported()){//判断是否支持DeskTop
desktop = Desktop.getDesktop();
desktop.browse(new URI(uri));
}catch(Exception e){
e.printStackTrace();
public static void main(String[] args) throws IOException, InterruptedException {
int i =0;
List<String> list = AddCount.get();
// while(true){ //一直循环
// try{
// if(i<40) //判断是否小于博文数量,不然可能会出现越界错误
// {
// browse((String)strList.get(i));
// Thread.sleep(3000); //这里的单位为毫秒 我这里设置每个 网址之间间隔30s 这里可以根据情况改
// }else{
// i=-1; //将i重置为-1 因为后面会进行i++ 加1后就变成了0
// // 启用cmd运行chrome的方式来退出
// Runtime.getRuntime().exec("taskkill /F /IM chrome.exe"); //我默认浏览器是 chrome
// //如果你的事firefox 将chrome改为firefox即可
// Thread.sleep(36); //这里的单位为毫秒 我这里设置每个访问所有博文后 休眠1小时 这里可以根据情况改
// }
// }catch(Exception e){
// e.printStackTrace();
// }
// i++;
// }
Document doc;
// for(String j:list) {
// doc = Jsoup.connect(j).get();
// System.out.println(doc.baseUri()+"一秒");
// }
Set<String> set = new HashSet<>();
for(String j :list){
set.add(j);
for(String a:set){
doc = Jsoup.connect(a).get();
System.out.println("==="+doc.baseUri()+"===一秒");
4、它的网页的访问量会增长的很慢,和本地程序运行速度有关,如果本地硬件性能较好,可以使用java的多线程的方式进行高并发,这样会明显增快爬取速度。
1.简单的maven项目2.引入jsoup访问网站3.pom.xml<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> &l
玩博客有一段时间了,有时候看见自己那少得可怜的博客访问量和博文阅读数,心想怎么样才能提高自己的博客访问量博文阅读数呢,结合自身搞过web方面的经历发现:这个博文阅读量就是当你打开对应博文的网址,后端程序会记录刷新进行加1操作,并记录到数据库中,而博客访问量很大一部分是所有博文阅读量之和。(个人见解)
那如何提高博客访问量、博文阅读量?
通过上面我们可以知道,可以手动点击博文然后就可以提高博客访...
jsoup是一款Java的HTML解析器,主要用来对HTML解析。在爬虫的时候,当我们用HttpClient之类的框架,获取到网页源码之后,需要从网页源码中取出我们想要的内容,就可以使用jsoup这类HTML解析器了。可以非常轻松的实现。
虽然jsoup也支持从某个地址直接去爬取网页源码,但是只支持HTTP,HTTPS协议,支持不够丰富。所以,主要还是用来对HTML进行解析。
#Jsoup地址
https://www.open-open.com/jsoup/
#在maven中央仓库的地址
https:
由于最近在做一个关于班级的app,需要用到同学们的课表,想着通过解析html来获取。于是,有了下面,借助jsoup包来解析html课表,生成每一周的课表。下载jsoup包导入lib。获取个人课表可以通过进入教务管理系统。“个人课表查询”点击右键,打开链接地址。作者课表:grkbListjsoup:jsoup下载地址文档:中文文档资料 最后生成的结果附上代码import java.io.File;
3. 解析网页内容
通过jsoup的dom遍历,可以从获取的网页内容中提取需要的信息。例如,可以使用getElementById()方法获取指定id的元素节点,使用getElementsByClass()方法获取指定类名的元素节点,使用select()方法获取指定选择器的元素节点等等。
Element titleEl = doc.getElementById("title");
String title = titleEl.text();
Elements links = doc.getElementsByTag("a");
for (Element link : links) {
String linkHref = link.attr("href");
String linkText = link.text();
4. 处理爬取数据
根据需要对爬取到的数据进行处理和存储。例如,可以将数据存储到数据库中,也可以将数据保存到本地文件等等。
上述即为Java爬虫的基本流程,当然还有很多细节需要注意,例如如何应对反爬虫机制的限制等等。
vue路由解决Uncaught (in promise) Error: Avoided redundant navigation to current location: “/home/news“.
17362