码迷,mamicode.com
首页 > Web开发 > 详细

爬虫 测试webmagic (一)

时间:2015-05-10 01:01:12      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

目标:统计斗鱼(www.douyu.com)人数

思路:

1. 目录找到douyu播出的所有游戏 http://www.douyutv.com/directory

2. 借助 chrome 定位到每个游戏的目录页面,正则表达式为 /directory/game/\\w+

  比如对于LOL来说,找到 href=/directory/game/LOL

3. 进入到游戏目录后,借助 chrome 得到 xpath, 定位到各个主播的人数

    比如某个主播的观众数 //*[@id="item_data"]/ul/li[2]/a/div[1]/p/span[1]

    推出人数的位置规律为 //*[@id="item_data"]/ul/li[number]/a/div[1]/p/span[1]

4. code 如下

 

public class DouyuViewerStat implements PageProcessor {

private Site site = Site.me().setDomain("http://www.douyutv.com/")
.addStartUrl("http://www.douyutv.com/directory");

@Override
public void process(Page page) {
// System.out.println(page);
List<String> links = page.getHtml().links().regex("/directory/game/\\w+").all();

for(String link: links) {
page.addTargetRequest("http://www.douyutv.com"+link);
}

// System.out.println(links);
page.putField("userName", page.getHtml().xpath("//*[@id=\"item_data\"]/ul/li[1]/a/div[1]/h1"));
page.putField("viewerNumber", page.getHtml().xpath("//*[@id=\"item_data\"]/ul/li[1]/a/div[1]/p/span[1]"));
}

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

public static void main(String args[]) {
Spider.create(new DouyuViewerStat())
.addPipeline(new ConsolePipeline())
.run();
}
}

爬虫 测试webmagic (一)

标签:

原文地址:http://www.cnblogs.com/xinsheng/p/4491556.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!