本帖最后由 迈达斯之手 于 2017-2-27 18:25 编辑
刚刚逛了下论坛~看见你们这个答题都这么积极~写了一个小工具~热心答题的自己拿去编译运行吧~
功能蛮简单的~就是只要有人一提问~就会自动打开浏览器并跳转到新问题的界面~
顺便做了一个小工具~这个就不放出来了~很简单大家可以尝试一下~代码在21楼~自己写两个按钮控制一下就OK了~
新版代码在21楼:太久没用,发现旧代码不能用了
http://bbs.fanruan.com/forum.php?mod=redirect&goto=findpost&ptid=83301&pid=387646- package com.hg.bbshelper;
- public class StartHelper {
-
- public static void main(String[]args){
- while(true){
- MutliThread m1= new MutliThread();
- m1.start();
- try {
- Thread.currentThread().sleep(200000);
- } catch (InterruptedException e) {
-
- }
- }
- }
-
- }
复制代码 上面是主类~没啥特别的就是弄个线程一直监视网络就行~下面是爬虫
- package com.hg.bbshelper;
- import org.jsoup.Jsoup;
- import org.jsoup.nodes.Document;
- import org.jsoup.nodes.Element;
- import org.jsoup.select.Elements;
- import com.hg.bbshelper.bean.Question;
- public class MutliThread extends Thread{
- public void run(){
- try {
- while(true){
- Document doc = Jsoup.connect("http://bbs.fanruan.com/forum-39-1.html").get();
- Element body = doc.body();
- Elements el = body.getElementsByClass("threadlist");
- Elements liList = el.get(0).getElementsByTag("li");
- for(Element li : liList){
- new Question(li);
- }
- sleep(2000);
- }
- } catch (Exception e) {
- System.out.println(e.getMessage());
- e.printStackTrace();
- }
- }
- }
复制代码 最后就是扫描问题跳转网页了~
- package com.hg.bbshelper.bean;
- import java.io.IOException;
- import java.util.HashMap;
- import java.util.Map;
- import org.jsoup.nodes.Element;
- public class Question {
- private String userName = "";
- private String askDate = "";
- private int scanCount = 0;
- private int answerCount = 0;
- private String title = "";
- private String content = "";
- public String getUserName() {
- return userName;
- }
- public void setUserName(String userName) {
- this.userName = userName;
- }
- public String getAskDate() {
- return askDate;
- }
- public void setAskDate(String askDate) {
- this.askDate = askDate;
- }
- public int getScanCount() {
- return scanCount;
- }
- public void setScanCount(int scanCount) {
- this.scanCount = scanCount;
- }
- public int getAnswerCount() {
- return answerCount;
- }
- public void setAnswerCount(int answerCount) {
- this.answerCount = answerCount;
- }
- public String getTitle() {
- return title;
- }
- public void setTitle(String title) {
- this.title = title;
- }
- public String getContent() {
- return content;
- }
- public void setContent(String content) {
- this.content = content;
- }
- private String[] initNum(Element replies){
- String src = replies.html();
- String t1 = replies.getElementsByClass("fa-comments-o").outerHtml();
- String t2 = replies.getElementsByClass("fa-eye").outerHtml();
- src = src.replaceAll(t1, " ");
- src = src.replaceAll(t2, " ");
- src = src.replaceAll(" ", " ");
- src = src.replaceAll(" ", " ");
- src = src.replaceAll(" ", " ");
- if(src.startsWith(" ")){
- src = src.replaceFirst(" ", "");
- }
- return src.split(" ");
- }
- private String url = "";
- private void init(Element li){
- userName = li.getElementsByClass("username").get(0).html();
- Element replies = li.getElementsByClass("replies").get(0);
- String[] ct = initNum(replies);
- answerCount = Integer.parseInt(ct[0]);
- scanCount = Integer.parseInt(ct[1]);
- askDate = li.getElementsByClass("datetime").get(0).html().replaceAll(" ", "");
- title = li.getElementsByTag("h3").get(0).html().replaceAll("&", "&");
- url = li.getElementsByTag("a").get(0).attr("href");
- int pos = url.indexOf("&extra");
- url = url.substring(0,pos);
- }
- public static Map<String,String> qst = new HashMap<String,String>();
- public Question(Element li){
- init(li);
- if(answerCount==0 && !qst.containsKey(title)){
- try {
- qst.put(title, url);
- Runtime.getRuntime().exec("rundll32 url.dll,FileProtocolHandler http://bbs.fanruan.com/"+url);
- } catch (IOException e) {
- }
- }
- }
- }
复制代码
下面是依赖的JAR包
jsoup-1.10.1.jar
(337.49 KB, 下载次数: 12)
|