先上效果图:

准备工作:

/*** 建立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();
}
/*** 用于将内容写入到磁盘文件* @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):

<dependency><groupId>org.jsoup</groupId><artifactId>jsoup</artifactId><version>1.11.2</version>
</dependency>

开始分析网站:

捧腹网段子
首先找到我们需要的内容(作者、标题和正文)

查看其元素,我这里查看的是标题标签:


知道其结构之后,就可以获取我们想要的内容了:

    public static void main(String[] args) {StringBuilder allText = new StringBuilder();for (int i = 1; i <= 50; i++) {System.out.println("正在爬取第" + i + "页内容。。。");// 建立连接,获取网页内容String html = ConnectionUtil.Connect("https://www.pengfu.com/xiaohua_" + i + ".html");// 将内容转换成dom格式,方便操作Document doc = Jsoup.parse(html);// 获取网页内所有标题节点Elements titles = doc.select("h1.dp-b");for (Element titleEle : titles) {Element parent = titleEle.parent();// 标题内容String title = titleEle.getElementsByTag("a").text();// 标题对应的作者String author = parent.select("p.user_name_list > a").text();// 标题对应的正文String content = parent.select("div.content-img").text();// 将内容格式化allText.append(title).append("\r\n作者:").append(author).append("\r\n").append(content).append("\r\n").append("\r\n");}allText.append("-------------第").append(i).append("页-------------").append("\r\n");System.out.println("第" + i + "页内容爬取完毕。。。");}//将内容写入磁盘Test.writeToFile(allText.toString());}

参考文章:Python 爬虫入门(一)——爬取糗百

java爬取捧腹网段子相关推荐

  1. java爬取捧腹网段子(多线程版)

    前文链接 : java爬取捧腹网段子 上一篇文章讲述了如何使用Java爬取内容并写入文件,但是速度堪忧,今天将代码搞成了多线程版本, 具体方式如下: 新建一个splider类,继承callable接口 ...

  2. java 段子_java爬取捧腹网段子

    先上效果图: 准备工作: /** * 建立http连接 */ public static String Connect(String address) { HttpURLConnection conn ...

  3. python爬虫之爬取捧腹网段子

    原文链接:http://www.nicemxp.com/articles/12 背景:抓取捧腹网首页的段子和搞笑图片链接 如图: 地址:https://www.pengfu.com/ 首页中有很多子页 ...

  4. java的段子_java爬取捧腹网段子(多线程版)

    上一篇文章讲述了如何使用Java爬取内容并写入文件,但是速度堪忧,今天将代码搞成了多线程版本, 具体方式如下: 新建一个splider类,继承callable接口,用于存放我们需要多线程执行的逻辑: ...

  5. python爬取捧腹网gif图片

    #_*_coding:utf-8_*_ #爬取捧腹网GIF图片 import urllib,re import urllib.request import chardet #需要导入这个模块,检测编码 ...

  6. [GO]并的爬取捧腹的段子

    package mainimport ("fmt""strconv""net/http""regexp""st ...

  7. Golang实现并发版网络爬虫:捧腹网段子爬取并保存文件

    爬取捧腹网段子 url分页分析 https://www.pengfu.com/xiaohua_1.html 1 下一页+1 https://www.pengfu.com/xiaohua_2.html ...

  8. python3制作捧腹网段子页爬虫

    0x01 春节闲着没事(是有多闲),就写了个简单的程序,来爬点笑话看,顺带记录下写程序的过程.第一次接触爬虫是看了这么一个帖子,一个逗逼,爬取煎蛋网上妹子的照片,简直不要太方便.于是乎就自己照猫画虎, ...

  9. java小说目录提取_完整Java爬取起点小说网小说目录以及对应链接

    完整Java爬取起点小说网小说目录以及对应链接 完整Java爬取起点小说网小说目录以及对应链接 (第一次使用markdown写,其中的排版很不好,望大家理解) ?? 因为最近有一个比赛的事情,故前期看 ...

最新文章

  1. 《虚拟化安全解决方案》一2.3 在Windows Server 2008上配置Microsoft Hyper-V
  2. 如何使用 Ansible 和 anacron 实现自动化
  3. HR收到Dota天梯2000分玩家的简历,给不给面试的机会呢?
  4. 进程状态控制-进程的撤销
  5. JavaScript强化教程-JS面向对象编程
  6. Oracle架构入门级基础
  7. TPYBoard:一款可以发挥无限创意的MicroPython开发板
  8. 我的Android进阶之旅------Android利用Sensor(传感器)实现水平仪功能的小例
  9. 15 操作系统第四章 文件管理 文件的物理结构 文件存储空间管理
  10. EOSIO:EOSIO最新版1.4.0创建测试账户
  11. 比那 施氏食狮史 还要强的文章
  12. 基于Memcached的Nginx服务器集群session共享
  13. 机器学习基础(八)——感知机(iterative optimization)
  14. 财务分析中三张财务报表计算公式
  15. 解决springboot的pom.xml文件第一行报错问题
  16. 直播APP软件开发,直播系统开发的技术架构揭秘
  17. js实现文字跑马灯效果
  18. 国外问卷调查做快点有影响吗
  19. 对于Transformer 模型----可以从哪些地方进行创新和改进
  20. STM32单片机:定时器TIM输出PWM波

热门文章

  1. 电子秤设计中的称重模块
  2. 用python在树莓派上播放MP3/MP4
  3. C++使用模板类实现简单的人事管理系统
  4. Ipinstall软件工具-可视对讲
  5. 清华大学计算机科学学院刘钊,王霞,PhD - 教研系列 - 清华大学药学院
  6. 明文攻击之猪圈密码、希尔密码..
  7. Source Insight 不显示文件列表
  8. 六年长跑屡屡碰壁,陆金所赴美IPO能否如愿?
  9. 童年记忆中的经典香烟
  10. WebMagic入门案例