(1).创建1个java类文件,Spider.java
import java.io.IOException;
public class Spider {
public static void main(String[] args) {
// 设置范围值
int minId = 1;
int maxId = 4704554;
// 设置换行符
String eol = System.getProperty("line.separator");
// 永远执行
while (true) {
try {
// 生成随机Id
int num = minId + (int) (Math.random() * (maxId - minId + 1));
// 生成文章地址
String url = "https://www.gaojiufeng.cn/?id=" + num;
// 生成执行命令
String cmd = "google-chrome-stable --headless --disable-gpu --window-size=1920x1080 " + url;
// 执行命令
Runtime.getRuntime().exec(cmd);
// 输出信息
System.out.println("当前同步文档Id:" + num + eol);
// CPU休息
Thread.sleep(1000 * 15);
} catch (IOException | InterruptedException ioException) {
System.out.println(ioException.getMessage() + eol);
}
}
}
}
(2).编译生成class文件
javac -encoding UTF-8 Spider.java
(3).创建jar包的清单文件MANIFEST.MF,内容如下:(主要为了设置主类,不然程序不知道如何启动)
Manifest-Version: 1.0
Main-Class: Spider
(4).将清单文件和类合并生成jar文件
jar -cvfm spider.jar MANIFEST.MF .\Spider.class
生成一个spider.jar文件
(5).运行测试
java -jar .\spider.jar
我的博客即将同步至腾讯云开发者社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=189rcn1vuzt4z
java限制1个方法同一时间只能被一个线程访问public synchronized void setOrderPay(){ }加上synchronized 修饰符即可...
Java5 引入了一种主要用于数组的增强型 for 循环,类似js中的for inpublic class Member { public static void main(String[]&...
java stringBuffer(1).stringBuffer和stringBuilder区别stringBuffer是线程安全的,stringBuilder速度更快(2).简单的stringBuffer例子StringBuffer sBuffer = new&nb...
(1).创建数组double[] myList = new double[size]; //推荐创建方式 double myList[] = new double[size];  ...
java匹配一个字符串在另外一个字符串中出现的次数,java正则start,java正则end// 正则 String pattern = "\\bgao\\b"; // 字符串 String content ...
假如有个字符串为"fatcatfatcatfat",正则为“cat”当调用appendReplacement(sb, "dog")时appendReplacement方法都会把匹配到的内容替换为dog,并把匹配到字符串的前面几个字符串+dog送给sb里,所以第...