最经典的一个Java爬虫项目易上手

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/zhongyantao1022/article/details/81222642

前言:闲来无事,觉得爬虫技术很高大上,于是小小的研究了一下。

网上查过资料后发现java爬虫也是有很多种类的,可以使用比较成熟的框架。我这里使用的是jsoup,简单粗暴的一种技术。

先做来个简单的demo:

先找一个简单点的网页,就这个了,读者杂志,文章还是很不错的。

ps:此网址获取数据将只用于练习,不会非法传播。


 开始写代码:


 
 
  1. package com.lezhi;
  2. import org.jsoup.Jsoup;
  3. import org.jsoup.nodes.Document;
  4. import org.jsoup.nodes.Element;
  5. import org.jsoup. select.Elements;
  6. import java.io.FileWriter;
  7. public class PaChongTest {
  8. public void test() {
  9. FileWriter fw = null;
  10. int a = 1;
  11. try {
  12. String allUrl = "http://www.52duzhe.com";
  13. Document docAll = Jsoup.connect(allUrl). get();
  14. Elements urlAll = docAll. select( ".time");
  15. Elements hrefAll = urlAll. select( "a[href]");
  16. for (Element hr : hrefAll) {
  17. String url = hr.attr( "abs:href");
  18. Document doc = Jsoup.connect(url). get();
  19. //获得文章标题
  20. Elements main = doc.getElementsByClass( "title");
  21. Elements link = main. select( "a[href]");
  22. for (Element hr1 : link) {
  23. String href = hr1.attr( "abs:href");
  24. Document inDoc = Jsoup.connect(href). get();
  25. Elements inMain = inDoc.getElementsByClass( "blkContainer");
  26. Elements h1 = inMain. select( "h1");
  27. Elements artInfo = inMain. select( ".artInfo");
  28. Elements blkContainerSblkCon = inDoc.getElementsByClass( "blkContainerSblkCon");
  29. Elements p = blkContainerSblkCon. select( "p");
  30. String title = h1.text();
  31. String author = artInfo. select( "#pub_date").text();
  32. String source = artInfo. select( "#media_name").text();
  33. String content = "";
  34. for (Element contxt : p) {
  35. content += contxt.text();
  36. }
  37. fw = new FileWriter( "D:\\读者\\"+hr.text()+ ".doc", true);
  38. fw.write( "标题:"+title + "\r\n" + author + "\r\n" + source + "\r\n" + content); //这里向文件中输入结果123
  39. fw.flush();
  40. // System.out.println("标题:" + title);
  41. // System.out.println(author);
  42. // System.out.println(source);
  43. // System.out.println("内容:" + content);
  44. System. out.println( "导出第"+a+++ "个");
  45. }
  46. System. out.println( "test");
  47. }
  48. } catch (Exception e) {
  49. e.printStackTrace();
  50. }
  51. }
  52. public static void main(String[] args) {
  53. PaChongTest pt = new PaChongTest();
  54. pt.test();
  55. }
  56. }

 

fw = new FileWriter("D:\\读者\\"+hr.text()+".doc", true);
 
 

 这里的路径修改成自己电脑的路径。

所用jar包 jsoup-1.11.3.jar,连接在后面。

 

运行效果:

至此一个简单的Java爬虫demo完成啦!

最后附上源码:https://download.csdn.net/download/zhongyantao1022/10566017
源代码中51行这里写错了 content += p.text();  应该是 content += contxt.text(); 

感谢 @x_ring 指正!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值