1 package us.codecraft.webmagic.samples;
2
3 import us.codecraft.webmagic.Page;
4 import us.codecraft.webmagic.Site;
5 import us.codecraft.webmagic.Spider;
6 import us.codecraft.webmagic.processor.PageProcessor;
7
8 import java.util.List;
9
10
11
12
13
14
15 public class MeicanProcessor implements PageProcessor {
16 @Override
17 public void process(Page page) {
18
19 List<String> requests = page.getHtml().xpath("//a[@class=\"area_link flat_btn\"]/@href").all();
20 if (requests.size() > 2) {
21 requests = requests.subList(0, 2);
22 }
23 page.addTargetRequests(requests);
24 page.addTargetRequests(page.getHtml().links().regex("(.*/restaurant/[^#]+)").all());
25 page.putField("items", page.getHtml().xpath("//ul[@class=\"dishes menu_dishes\"]/li/span[@class=\"name\"]/text()"));
26 page.putField("prices", page.getHtml().xpath("//ul[@class=\"dishes menu_dishes\"]/li/span[@class=\"price_outer\"]/span[@class=\"price\"]/text()"));
27 }
28
29 @Override
30 public Site getSite() {
31 return Site.me().setDomain("meican.com").setCharset("utf-8").
32 setUserAgent("Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_2) AppleWebKit/537.31 (KHTML, like Gecko) Chrome/26.0.1410.65 Safari/537.31");
33 }
34
35 public static void main(String[] args) {
36 Spider.create(new MeicanProcessor()).addUrl("http://www.meican.com/shanghai/districts").run();
37 }
38 }