以前没有写过爬虫程序,最近两天就研究了一下java的爬虫框架webmagic。然后写了一个demo
写爬虫的基本思想:
1.抓取目标连接
2.根据页面中标签,抓捕你需要的内容
3.保存结果集
以下是实现demo:
package ming; import java.util.List; import us.codecraft.webmagic.Page; import us.codecraft.webmagic.Site; import us.codecraft.webmagic.Spider; import us.codecraft.webmagic.processor.PageProcessor; public class TianyaPageProcessor implements PageProcessor{ //抓取网站的相关配置,包括:编码、抓取间隔、重试次数等 private Site site = Site.me().setRetryTimes(10).setSleepTime(1000); public static final String URL_LIST = "http://bbs\\.tianya\\.cn/post-free-5683314-1\\.shtml"; public void process(Page page) { if(page.getUrl().regex(URL_LIST).match()){ List<String> names = page.getHtml().xpath("//div[@class='links']/a/text()").all(); for(String name : names){ System.out.println(name); } } } public Site getSite() { return site; } public static void main(String[] args) { Spider.create(new TianyaPageProcessor()).addUrl("http://bbs.tianya.cn/post-free-5683314-1.shtml") .run(); } }
结果集为:
INFO - Spider bbs.tianya.cn started! INFO - downloading page http://bbs.tianya.cn/post-free-5683314-1.shtml 民生 娱乐 人文 舆情 股票 汽车 时尚 情感 旅游 星工场 韩国 海南 三亚 重庆 广东 深圳 湖南 广西 福建 贵州 山东 陕西 理财 农场 游戏 品牌 众筹 get page: http://bbs.tianya.cn/post-free-5683314-1.shtml
参考:https://github.com/code4craft/webmagic
框架文档:http://webmagic.io/docs/zh/posts/ch1-overview/thinking.html