ITPub博客

首页 > 数据库 > Oracle > Java实现网络爬虫 案例代码3:使用webmagic框架获取天气预报

Java实现网络爬虫 案例代码3:使用webmagic框架获取天气预报

原创 Oracle 作者:新梦想IT 时间:2023-02-08 16:18:31 0 删除 编辑




案例3:获取天气预报信息


需求说明


搭建开发环境,实现从“hao123.com”中获取当地天气预报信息,从控制台输出结果




分析


访问网址:https://www.hao123.com

分析网站URL、文档内容特征

获取网页内容

拆分出需求内容

控制台输出结果



搭建WebMagic开发环境


示例代码


import us.codecraft.webmagic.Page;

import us.codecraft.webmagic.Site;

import us.codecraft.webmagic.Spider;

import us.codecraft.webmagic.pipeline.ConsolePipeline;

import us.codecraft.webmagic.processor.PageProcessor;


public class WeatherRepo implements PageProcessor{

    // 部分一:抓取网站的相关配置,包括编码、抓取间隔、重试次数等

    private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);


    @Override

    // process是定制爬虫逻辑的核心接口,在这里编写抽取逻辑

    public void process(Page page) {

        // 部分二:定义如何抽取页面信息,并保存下来

        page.putField("city", 

            page.getHtml().xpath("//span[@class='weather2-item']/text()").toString());

        

        page.putField("info_today", 

            page.getHtml().xpath("//div[@data-hook='weather']/text()").toString());

        page.putField("temperature_today", 

        page.getHtml().xpath("//div[@data-hook='tempera']/text()").toString());

        

        page.putField("info_tomorrow", 

            page.getHtml().xpath("//div[@data-hook='weather-tomorrow']/text()").toString());

        page.putField("temperature_tomorrow", 

        page.getHtml().xpath("//div[@data-hook='tempera-tomorrow']/text()").toString());

    }


    @Override

    public Site getSite() {

        return site;

    }


    public static void main(String[] args) {


        Spider.create(new WeatherRepo())

                //从"https://www.hao123.com"开始抓

                .addUrl("https://www.hao123.com")

                .addPipeline(new ConsolePipeline())   // 控制台输出

                .run();

    }

}


————————————————


来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/69940641/viewspace-2934421/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论
新梦想IT职业教育(新梦想软件测试),是长沙一家专注于IT教育培训的机构。分享干货不容易,如果想了解更多的软件测试精彩干货,请留言交流,感谢阅读!

注册时间:2019-07-11

  • 博文量
    237
  • 访问量
    140189