1.简单的maven项目

2.引入jsoup访问网站

3.pom.xml

<project xmlns="http:///POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http:///POM/4.0.0 http:///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("
).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(
/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(
rticle/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(
/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(
/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();
try{
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的多线程的方式进行高并发,这样会明显增快爬取速度。