基于webmagic的爬虫小应用

时间:2022-08-10 16:58:08

以前没有写过爬虫程序,最近两天就研究了一下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