zoukankan      html  css  js  c++  java
  • WebMagic

    今天有个新需求,让我爬取淘宝旗下某个网站的内容,本来是想自己手写的,后来听人说WebMagic有现成的框架

    先加入maven(最好用maven,我demo用的maven,项目用的传统的jar包,结果发现jar包太多了,还是maven好自动管理依赖)

            <dependency>
                <groupId>us.codecraft</groupId>
                <artifactId>webmagic-core</artifactId>
                <version>0.7.3</version>
            </dependency>
            <dependency>
                <groupId>us.codecraft</groupId>
                <artifactId>webmagic-extension</artifactId>
                <version>0.7.3</version>
            </dependency>

    自己写一个类实现接口(包里有现成的demo,比如github baidu之类的,某些已经无法使用了)

    public class AliPageProcessor implements PageProcessor {
        //两个参数分别为如果发生错误重连次数和每次爬完等待的时间,为了更好的模拟这边设置15秒
        private Site site = Site.me().setRetryTimes(1).setSleepTime(15000);
        @Override
        public void process(Page page) {
    //使用正则过滤字符,最后放到key里 page.putField(
    "title", page.getHtml().regex("<h2>(.*?)</h2>")); page.putField("content", page.getHtml().regex("<p(.*?)<p></p>"));
           //添加符合要求的下一次链接 加入队列 等待时间完毕之后爬取
    page.addTargetRequests(page.getHtml().links().regex(xxxxx).all());

    //取出key
    if (page.getResultItems().get("title")!=null)
    //处理数据 System.out.println(page.getResultItems().get(
    "title").toString()); System.out.println(page.getResultItems().get("content").toString()); } //默认重写的方法 @Override public Site getSite() { return site; } }

    类写好之后可以正式启用,写一个启动类

    public class SpiderDemo  {
        public static void main(String[] args) {
            Spider.create(new AliPageProcessor()).addUrl("https://sf.taobao.com/notice_detail/3076493.htm").thread(1).run();
        }
    }

    每次启动一个线程去爬取

    官方文档地址:http://webmagic.io/docs/zh/ 里面包含了下载,处理,管理,持久化 4个组件。

    不和别人一样,不复制只真正理解
  • 相关阅读:
    第一章 jQuery基础方法回顾
    php无法执行python
    echarts
    logstash配置
    storm结合kafka
    spark中读取elasticsearch数据
    hadoop中读取protobuf数据
    spark1.3.1配置模板
    hadoop2.6.0配置模板
    使用jnetpcap捕获数据包进行流量检测
  • 原文地址:https://www.cnblogs.com/Vinlen/p/13646919.html
Copyright © 2011-2022 走看看