Ubuntu上用vscode搭建自动化定时爬取百度热搜的java爬虫(jsoup)
环境
操作系统:ubuntu20
软件:vscode
vscode环境:jsoup+Maven
vscode插件:如下图
知识点
- Maven创建项目(vscode中)
- Maven导入jsoup
- java爬虫(jsoup)
- shell编程
- chmod权限设置
- crontab定时任务
Maven创建项目(vscode中)
maven的下载安装配置讲解请参照我的这篇文章
Ubuntu20上使用VScode配置maven
在VScode中进行maven项目的搭建
按ctrl+shift+p打开命令输入maven
普通项目选快速创建就可以
后面和命令行里是一样的
完成后应该是这样的
Maven导入jsoup
maven在vscode上创建好项目目录之后就要对jsoup进行相关的配置
找到pom.xml
然后打开jsoup官网
官网如下:
https://jsoup.org/
选择download
复制下面这段配置的xml
然后粘贴到这个位置进行配置
jsoup配置完成!
java爬虫(jsoup)
jsoup要是没学建议学一下不然你也看不懂
然后就到java爬取百度热搜的地方了
百度热搜网址:https://top.baidu.com/board?tab=realtime
在com.example包下创建demo2.java编写代码
package com.example;
import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
public class demo2 {
public static void main(String[] args) throws MalformedURLException, IOException {
String url = "https://top.baidu.com/board?tab=realtime";
Document document = Jsoup.parse(new URL(url), 30000);
Elements elements = document.getElementsByTag("div");
Elements elements2 = elements.select(".c-single-text-ellipsis");
String titles = elements2.text();
//替换空格为换行
String needs = titles.replace(" ", "\n");
//保存
File file = new File("/home/XXX/Java_learn/JsoupMessage/weibo.txt");
FileWriter fw = new FileWriter(file);
fw.write(needs);
fw.close();
System.out.println("success");
}
}
放心你直接复制我的代码绝对是错的,自己把路径改改吧
运行一下看看
这里一定要选择run java
run code是没用的
成功
shell编程
完成上面的就可以开始shell脚本的编写了
cd shellproject/
vim weibojsoup.sh
chmod权限设置
编写好shell脚本之后还要进行添加执行权限
chmod a=rwx weibojsoup.sh
然后执行
sh weibojsoup.sh
执行之后有这两个,一个文件,一个文件夹存放之前的爬取文件
crontab定时任务
crontab -e
一开始如果你之前没有编写过定时任务的话会让你选择编辑器
选择2
1是真的不好用!
如果选错了可以用
select-editor
来重新选择
然后就可以编写了
编写规则:
我设置了每天0:0:0进行定时爬取,后面的路径是你的shell脚本的路径
结束!