Jsoup demo

jsoup爬蟲小能手,總是時不時會用到,放個demo在這里,用到再回顧 下。

import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.LoggerContext;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.jsoup.Connection;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.nodes.Element;
import org.jsoup.select.Elements;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.io.IOException;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class CodeReviewUtils {

    static Logger logger = logger = LoggerFactory.getLogger(CodeReviewUtils.class);

    // 需要檢視的項目地址
    static String url = "";

    // 網(wǎng)頁登陸之前copy下來
    static String Cookie = "";
    static String X_CSRF_Token = "";

    public static void main(String[] args) throws IOException {
        LoggerContext loggerContext = (LoggerContext) LoggerFactory.getILoggerFactory();
        List<ch.qos.logback.classic.Logger> loggerList = loggerContext.getLoggerList();
        loggerList.forEach(logger -> {
            logger.setLevel(Level.INFO);
        });

        Connection connect = Jsoup.connect(url + "......................");
        connect.header("Cookie", Cookie);
        connect.header("X-CSRF-Token", X_CSRF_Token);
        connect.header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36");
        connect.header("Referer", "");

        Connection.Response execute = connect.execute();
        Document html = Jsoup.parse(execute.body());
        Elements allCommitDiv = html.select("div.commit.compare_check_box");
        logger.info("code:{}", execute.statusCode());
        logger.info("size:{}", allCommitDiv.size());
        allCommitDiv.forEach(e -> {
            // 已檢視,跳過
            if (e.select("div").last().hasClass("grey")) {
                String commitId = "";
                Element aTag = e.select("a.row_title").first();
                Matcher href = Pattern.compile(".*commit/(.*)").matcher(aTag.attr("href"));
                if (href.matches()) {
                    commitId = href.group(1);
                }
                logger.info("commitId:{}", commitId);
                CloseableHttpClient client = HttpClients.createDefault();

                HttpPost httpPost = new HttpPost(url + "......................?commit_id=" + commitId + "&commit_status=1");
                httpPost.addHeader("Cookie", Cookie);
                httpPost.addHeader("X-CSRF-Token", X_CSRF_Token);
                httpPost.addHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.131 Safari/537.36");
                httpPost.addHeader("Referer", "");
                try {
                    CloseableHttpResponse response = client.execute(httpPost);
                    CodeReviewUtils.logger.info("{} -> {}", commitId, response.getStatusLine().getStatusCode());
                } catch (IOException ex) {
                    ex.printStackTrace();
                }
            }


        });
    }
}

?著作權歸作者所有,轉載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 01 關系復制 戀愛關系不異于親子關系。人都會無意識中將戀愛當作治療,目的是修復童年的錯誤。戀愛中,我們都在尋找理...
    蕭筱筱閱讀 243評論 2 4
  • 到了年底,朋友圈里曬結婚照的小伙伴越來越多,昔日里穿著開襠褲和我一起在村子里東跑西串的小丫頭穿上了潔白的婚紗,...
    楊緣夢閱讀 288評論 0 0
  • 昨天晚上認真研究了劉教授的課件,在網(wǎng)上搜集了一些資料,對課例研究這個內(nèi)容有了一些想法。今天晚上我懷著忐忑的...
    南街曹淑慧閱讀 219評論 0 0
  • 如果可以,我希望不姓王了 文/王不老 大家好,我姓“王”。相信看到這里,會有很多人想,這個作者太不矜持了,上來就把...
    大故事家閱讀 554評論 2 2
  • 老媽給我檢查作業(yè)的時候特別搞笑。 我老媽給我檢查作業(yè)的時候不但有動作,而且還有語言。英語漢語相結合那真...
    張煒皓閱讀 79評論 0 0

友情鏈接更多精彩內(nèi)容