成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

java爬取捧腹網(wǎng)段子

BoYang / 2523人閱讀

摘要:引入的包用于解析開始分析網(wǎng)站捧腹網(wǎng)段子首先找到我們需要的內(nèi)容作者標(biāo)題和正文查看其元素,我這里查看的是標(biāo)題標(biāo)簽知道其結(jié)構(gòu)之后,就可以獲取我們想要的內(nèi)容了正在爬取第頁內(nèi)容。。。將內(nèi)容寫入磁盤參考文章爬蟲入門一爬取糗百

先上效果圖:

準(zhǔn)備工作:

/**
 * 建立http連接
 */
public static String Connect(String address) {
    HttpURLConnection conn = null;
    URL url = null;
    InputStream in = null;
    BufferedReader reader = null;
    StringBuffer stringBuffer = null;
    try {
        url = new URL(address);
        conn = (HttpURLConnection) url.openConnection();
        conn.setConnectTimeout(5000);
        conn.setReadTimeout(5000);
        conn.setDoInput(true);
        conn.connect();
        in = conn.getInputStream();
        reader = new BufferedReader(new InputStreamReader(in));
        stringBuffer = new StringBuffer();
        String line = null;
        while ((line = reader.readLine()) != null) {
            stringBuffer.append(line);
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        conn.disconnect();
        try {
            in.close();
            reader.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return stringBuffer.toString();
}
/**
 * 用于將內(nèi)容寫入到磁盤文件
 * @param allText
 */
private static void writeToFile(String allText) {
    System.out.println("正在寫入。。。");
    BufferedOutputStream bos = null;
    try {
        File targetFile = new File("/Users/shibo/tmp/pengfu.txt");
        File fileDir = targetFile.getParentFile();
        if (!fileDir.exists()) {
            fileDir.mkdirs();
        }
        if (!targetFile.exists()) {
            targetFile.createNewFile();
        }
        bos = new BufferedOutputStream(new FileOutputStream(targetFile, true));
        bos.write(allText.getBytes());
    } catch (IOException e) {
        e.printStackTrace();
    } finally {
        if (null != bos) {
            try {
                bos.close();
            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    System.out.println("寫入完畢。。。");
}

引入jsoup的jar包(用于解析dom):


    org.jsoup
    jsoup
    1.11.2

開始分析網(wǎng)站:

捧腹網(wǎng)段子
首先找到我們需要的內(nèi)容(作者、標(biāo)題和正文)

查看其元素,我這里查看的是標(biāo)題標(biāo)簽:

知道其結(jié)構(gòu)之后,就可以獲取我們想要的內(nèi)容了:

    public static void main(String[] args) {
        StringBuilder allText = new StringBuilder();
        for (int i = 1; i <= 50; i++) {
            System.out.println("正在爬取第" + i + "頁內(nèi)容。。。");
            // 建立連接,獲取網(wǎng)頁內(nèi)容
            String html = ConnectionUtil.Connect("https://www.pengfu.com/xiaohua_" + i + ".html");
            // 將內(nèi)容轉(zhuǎn)換成dom格式,方便操作
            Document doc = Jsoup.parse(html);
            // 獲取網(wǎng)頁內(nèi)所有標(biāo)題節(jié)點
            Elements titles = doc.select("h1.dp-b");
            for (Element titleEle : titles) {
                Element parent = titleEle.parent();
                // 標(biāo)題內(nèi)容
                String title = titleEle.getElementsByTag("a").text();
                // 標(biāo)題對應(yīng)的作者
                String author = parent.select("p.user_name_list > a").text();
                // 標(biāo)題對應(yīng)的正文
                String content = parent.select("div.content-img").text();
                // 將內(nèi)容格式化
                allText.append(title)
                        .append("
作者:").append(author)
                        .append("
").append(content)
                        .append("
").append("
");
            }
            allText.append("-------------第").append(i).append("頁-------------").append("
");
            System.out.println("第" + i + "頁內(nèi)容爬取完畢。。。");
        }

        //將內(nèi)容寫入磁盤
        Test.writeToFile(allText.toString());
    }

參考文章:Python 爬蟲入門(一)——爬取糗百

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/76657.html

相關(guān)文章

  • java爬取捧腹網(wǎng)段子(多線程版)

    摘要:將內(nèi)容格式化作者第頁第頁內(nèi)容爬取完畢。。。 前文鏈接 : java爬取捧腹網(wǎng)段子 上一篇文章講述了如何使用Java爬取內(nèi)容并寫入文件,但是速度堪憂,今天將代碼搞成了多線程版本,具體方式如下: 新建一個splider類,繼承callable接口,用于存放我們需要多線程執(zhí)行的邏輯:將上一篇文章中爬取網(wǎng)頁內(nèi)容的代碼搬過來 public class Splider implements Cal...

    gekylin 評論0 收藏0
  • 如何快速掌握Python數(shù)據(jù)采集與網(wǎng)絡(luò)爬蟲技術(shù)

    摘要:通過本文的學(xué)習(xí),可以快速掌握網(wǎng)絡(luò)爬蟲基礎(chǔ),結(jié)合實戰(zhàn)練習(xí),寫出一些簡單的爬蟲項目。從技術(shù)手段來說,網(wǎng)絡(luò)爬蟲有多種實現(xiàn)方案,如。二網(wǎng)絡(luò)爬蟲技術(shù)基礎(chǔ)在本次課中,將使用技術(shù)手段進行項目的編寫。 摘要:本文詳細(xì)講解了python網(wǎng)絡(luò)爬蟲,并介紹抓包分析等技術(shù),實戰(zhàn)訓(xùn)練三個網(wǎng)絡(luò)爬蟲案例,并簡單補充了常見的反爬策略與反爬攻克手段。通過本文的學(xué)習(xí),可以快速掌握網(wǎng)絡(luò)爬蟲基礎(chǔ),結(jié)合實戰(zhàn)練習(xí),寫出一些簡單的...

    W4n9Hu1 評論0 收藏0
  • Python 爬蟲入門(一)——爬取糗百

    摘要:爬取糗百內(nèi)容代碼地址微信公眾號智能制造社區(qū),歡迎關(guān)注。爬蟲程序一般是通過模擬瀏覽器對相應(yīng)發(fā)出請求,獲取數(shù)據(jù),并通過正則等手段匹配出頁面中我們所需的數(shù)據(jù)。庫基本介紹是學(xué)習(xí)爬蟲的一大利器。 爬取糗百內(nèi)容 GitHub 代碼地址https://github.com/injetlee/Python/blob/master/qiubai_crawer.py 微信公眾號:【智能制造社區(qū)】,歡迎關(guān)注...

    legendaryedu 評論0 收藏0
  • Node命令行工具開發(fā)【看段子小工具】

    摘要:我們的小項目就初始化成功了,就可以認(rèn)真思考代碼了首先分析糗事百科我們打開糗事百科會發(fā)現(xiàn)它的還是很簡單,由于我們只是爬取段子所以如下,就是頁數(shù)。 Node命令行工具開發(fā)【看段子】 你有沒有上班想看笑話卻又怕領(lǐng)導(dǎo)發(fā)現(xiàn)的經(jīng)歷?現(xiàn)在我們就用幾十行代碼寫一個命令行看笑話段子的小程序,從此無需擔(dān)心領(lǐng)導(dǎo)的視察。這篇文章和上一篇差不多都是命令行小工具開發(fā),不過本篇更偏向于小爬蟲的開發(fā) 總覽:命令行看段...

    kelvinlee 評論0 收藏0
  • 段友福利:Python爬取段友之家貼吧圖片和小視頻

    摘要:由于最新的視頻整頓風(fēng)波,內(nèi)涵段子被迫關(guān)閉,廣大段友無家可歸,但是最近發(fā)現(xiàn)了一個段友的,版本更新也挺快,正在號召廣大段友回家,如下圖,有興趣的可以下載看看我不是打廣告的,沒收廣告費的同時,之前同事也發(fā)了一個貼吧的段子聚居地,客官稍等,馬上奉上 由于最新的視頻整頓風(fēng)波,內(nèi)涵段子APP被迫關(guān)閉,廣大段友無家可歸,但是最近發(fā)現(xiàn)了一個段友的app,版本更新也挺快,正在號召廣大段友回家,如下圖,有...

    singerye 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<