標籤:return gets spider time items class pre function style
一下是博主收藏的第一個WebMagic架構爬蟲樣本
推薦網站: http://webmagic.io/docs/zh/posts/ch4-basic-page-processor/pageprocessor.html
public class GithubRepoPageProcessor implements PageProcessor { // 部分一:抓取網站的相關配置,包括編碼、抓取間隔、重試次數等 private Site site = Site.me().setRetryTimes(3).setSleepTime(1000); @Override // process是定製爬蟲邏輯的核心介面,在這裡編寫抽取邏輯 public void process(Page page) { // 部分二:定義如何抽取頁面資訊,並儲存下來 page.putField("author", page.getUrl().regex("https://github\\.com/(\\w+)/.*").toString()); page.putField("name", page.getHtml().xpath("//h1[@class=‘entry-title public‘]/strong/a/text()").toString()); if (page.getResultItems().get("name") == null) { //skip this page page.setSkip(true); } page.putField("readme", page.getHtml().xpath("//div[@id=‘readme‘]/tidyText()")); // 部分三:從頁面發現後續的url地址來抓取 page.addTargetRequests(page.getHtml().links().regex("(https://github\\.com/[\\w\\-]+/[\\w\\-]+)").all()); } @Override public Site getSite() { return site; } public static void main(String[] args) { Spider.create(new GithubRepoPageProcessor()) //從"https://github.com/code4craft"開始抓 .addUrl("https://github.com/code4craft") //開啟5個線程抓取 .thread(5) //啟動爬蟲 .run(); }}
WebMagic架構總結