51Testing软件测试论坛
标题:
爬虫 测试webmagic (一)
[打印本页]
作者:
胖虎
时间:
2018-3-15 16:38
标题:
爬虫 测试webmagic (一)
目标:统计斗鱼(
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();
}
}
复制代码
作者:
libingyu135
时间:
2018-4-25 16:43
6666
作者:
梦想家
时间:
2018-5-5 09:37
赞一个
作者:
Miss_love
时间:
2018-5-8 14:33
作者:
jingzizx
时间:
2018-5-13 14:23
作者:
jingzizx
时间:
2018-5-13 14:23
作者:
jingzizx
时间:
2018-5-13 14:23
欢迎光临 51Testing软件测试论坛 (http://bbs.51testing.com/)
Powered by Discuz! X3.2