使用webmagic实现爬虫程序示例分享

时间:2021-10-08 22:10:26 


package com.letv.cloud.spider;

import java.util.HashSet;
import java.util.List;

import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;

public class MoviePaperPageProcessor implements PageProcessor {
 private Site page = Site.me().setRetryTimes(3).setSleepTime(1000);

 public Site getSite() {
  return page;
 }

 public void process(Page page) {
  List<String> links = page.getHtml().links().regex(
    "http://posters.aa.com/poster/\\d+").all();
  links = removeDuplicate(links);
  page.addTargetRequests(links);
  page.putField("title", page.getHtml().xpath(
    "//div[@id='imdbleftsecc']/center/h1/text()").toString());
  page.putField("imgurl", page.getHtml().xpath(
    "//div[@id='imdbleftsecc']/center/img/@src").toString());
 }

 public static void main(String[] args) {
  for (int i = 1; i <= 3; i++) {
   Spider.create(new MoviePaperPageProcessor()).addUrl(
     "http://posters.aa.co/poster_page/" + i).thread(5).run();
  }
 }

 public static List removeDuplicate(List list) {
  HashSet hs = new HashSet(list);
  list.clear();
  list.addAll(hs);
  return list;
 }
}

标签:java,webmagic,爬虫
0
投稿

猜你喜欢

  • Java数据结构之数组(动力节点之Java学院整理)

    2023-09-23 21:20:12
  • IntelliJ IDEA中查看当前类的所有继承关系图

    2023-08-06 12:40:19
  • 深入理解Android Bitmap

    2023-07-29 08:52:14
  • Java下变量大小写驼峰、大小写下划线、大小写连线转换

    2022-04-19 15:20:18
  • 详解SpringBoot注解读取配置文件的方式

    2023-08-05 02:51:16
  • Java Socket实现传输压缩对象的方法示例

    2022-12-18 06:52:30
  • MyBatis-Plus多表联查的实现方法(动态查询和静态查询)

    2023-11-23 22:26:45
  • Java使用JDBC实现Oracle用户认证的方法详解

    2022-10-06 08:59:36
  • 完美解决idea创建文件时,文件不分级展示的情况

    2022-01-01 22:10:19
  • JAVA Integer类常用方法解析

    2021-09-01 06:51:08
  • Mybatis-Plus自动填充更新操作相关字段的实现

    2023-06-04 22:37:12
  • 分析并发编程之LongAdder原理

    2023-05-11 17:19:30
  • IDEA 2022 中的Lombok 使用基础教程

    2023-04-09 21:57:09
  • c# 在windows中操作IIS设置FTP服务器的示例

    2023-07-18 06:13:01
  • 详解Springboot分布式限流实践

    2021-07-12 14:29:18
  • C++程序中启动线程的方法

    2023-06-28 03:35:02
  • 解决Maven中关于依赖导入不进的问题

    2023-09-05 23:13:08
  • Java重写equals及hashcode方法流程解析

    2023-10-14 06:53:13
  • SpringBoot框架中Mybatis-plus的简单使用操作汇总

    2022-12-17 19:10:53
  • idea如何配置javafxsdk详细教程

    2023-11-24 22:04:16
  • asp之家 软件编程 m.aspxhome.com