您的位置:首页 > 编程语言 > Java开发

【Java】WebMagic实现的最基本的爬虫

2017-08-02 10:34 197 查看
WebMagic是一个十分容易入门的爬虫框架,并且扩展也十分容易。关于WebMagic,官网有十分详细的介绍,并且有教程和示例。我这里只实现了十分基础的功能,可以用作入门了解的参考。
准备工作:
1.需要到官网下载相关的jar包,并且导入到工程中(导入的方法请自行了解~)
2.这里用的是xpath的搜索方法,相关语法等,需要简单了解
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;

public class hi implements PageProcessor {
// 抓取网站的相关配置,包括编码、抓取间隔、重试次数等
private Site site = Site.me().setRetryTimes(3).setSleepTime(100);
private static int count =0;

@Override
public Site getSite() {
return site;
}

@Override
public void process(Page page) {
//判断链接是否符合 [a-z 0-9 -]*是任意数字字母
if(!page.getUrl().regex("http://blog.csdn.net/zuoxiaolong8810/article/details/[a-z 0-9 -]*.html").match()){

page.addTargetRequests(
page.getHtml().xpath("//*[@id=\"article_list\"]/div/div/h1/span/a/@href").all());//获取我需要的链接

System.out.println("文章标题:"+ page.getHtml().xpath("/html/head/title/text()").get() );//输出需要的内容(这里我需要的是标题)
count ++;
}

//把符合这个网址格式的,加入到爬取队列
page.addTargetRequests(page.getHtml().links().regex("(http://blog.csdn.net/zuoxiaolong8810/article/list/[a-z 0-9 -]*)").all());
}

public static void main(String[] args) {
long startTime, endTime;
System.out.println("开始爬取...");
startTime = System.currentTimeMillis();
Spider.create(new hi()).addUrl("http://blog.csdn.net/zuoxiaolong8810/article/list/1").thread(5).run();//从这个网址开始获取
endTime = System.currentTimeMillis();
System.out.println("爬取结束,耗时约" + ((endTime - startTime) / 1000) + "秒,抓取了"+count+"条记录");
}

}


xpath的值应该怎么填?

1.用chrome浏览器,对着需要获取的值,右键->检查,然后查看需要的内容

2.找到需要的内容后,右键->copy->xpath

3.之后可能需要自己再补充(比如:/@href)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  爬虫 jar