使用webmagic爬虫对百度百科进行简单的爬取

一、分析要爬取的网页源码:

  1、打开要分析的网页,查看源代码,找到要爬取的内容:

  (选择网页里的一部分右击审查元素也行)

  

  2、导入jar包,这个就直接去网上下吧;

  3、写爬虫:

1 package com.gb.pachong; 2 import java.sql.SQLException; 3 import com.gb.util.AddNum; 4 import us.codecraft.webmagic.Page; 5 import us.codecraft.webmagic.Site; 6 import us.codecraft.webmagic.Spider; 7 import us.codecraft.webmagic.processor.PageProcessor; 8 public class BaikePaChong implements PageProcessor 9 { 10 private static String key; 11 public static String res=null; 12 // 抓取网站的相关配置,包括编码、重试次数、抓取间隔 13 private Site site = Site.me().setRetryTimes(3).setSleepTime(1000); 14 public void run(String key) 15 { 16 this.key = key; 17 //addUrl就是种子url,Page对象就是当前获取的页面,getUrl()可以获得当前url,addTargetRequests()就是把链接放入等待爬取,getHtml()获得页面的html元素 18 //启动爬虫 19 Spider.create(new BaikePaChong()).addUrl("https://baike.baidu.com/item/" + key).thread(5).run(); 20 } 21 @Override 22 public Site getSite() 23 { 24 return site; 25 } 26 @Override 27 public void process(Page page) 28 { 29 //获取页面内容 30 res = page.getHtml().xpath("//meta[@name='description']/@content").toString(); 31 //把包含数据添加到数据库的方法的类实例化成对象 32 AddNum addNum=new AddNum(); 33 try 34 { 35 //数据添加进数据库 36 addNum.store(key, res); 37 } 38 catch (SQLException e) 39 { 40 e.printStackTrace(); 41 } 42 } 43 public void search(String string) 44 { 45 BaikePaChong baikePaChong = new BaikePaChong(); 46 baikePaChong.run(string); 47 } 48 public String getRes() 49 { 50 return res; 51 } 52 }

  4、上面只是简单的爬取,可以仿照这样的方法进行一些别样的扩展使用。

  5、Xpath可以在这里直接复制:

  


__EOF__

本文作者我命倾尘
本文链接https://www.cnblogs.com/guobin-/p/10409591.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角推荐一下。您的鼓励是博主的最大动力!
posted @   我命倾尘  阅读(420)  评论(0编辑  收藏  举报
编辑推荐:
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
点击右上角即可分享
微信分享提示