使用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
投稿

猜你喜欢

  • springboot跨域如何设置SameSite的实现

    2022-08-03 21:27:07
  • jdbc+jsp实现简单员工管理系统

    2021-08-31 23:08:15
  • java实现基于SMTP发送邮件的方法

    2023-04-06 12:22:07
  • springboot无法从静态上下文中引用非静态变量的解决方法

    2022-03-05 16:50:05
  • 配置SpringBoot方便的切换jar和war的方法示例

    2023-11-22 11:57:54
  • 详解Android Studio如何导入第三方类库、jar包和so库

    2022-01-04 22:27:54
  • python只需30行代码就能记录键盘的一举一动

    2023-06-27 18:22:12
  • RocketMQ生产者如何规避故障Broker方式详解

    2022-06-23 04:36:10
  • Java编写网上超市购物结算功能程序

    2021-10-29 13:55:52
  • 一款域名监控小工具 Domain(IP)Watcher 实现代码

    2023-09-15 11:55:44
  • 浅谈virtual、abstract方法和静态方法、静态变量理解

    2022-08-29 02:29:14
  • spring boot 如何请求后缀匹配

    2022-09-24 15:15:41
  • android中AutoCompleteTextView的简单用法(实现搜索历史)

    2023-01-08 18:33:01
  • Android图片处理:识别图像方向并显示实例教程

    2023-02-11 08:01:07
  • C++类与对象深入之构造函数与析构函数详解

    2021-06-29 13:44:44
  • java图形用户界面实现菜单功能

    2023-11-23 11:50:58
  • java中List分页的几种方法介绍

    2022-03-01 12:04:28
  • C#验证身份证的函数

    2022-06-16 04:49:37
  • Android安装apk文件并适配Android 7.0详解

    2022-11-11 01:41:28
  • C# 使用Log4net添加日志记录的方法

    2021-11-16 01:57:23
  • asp之家 软件编程 m.aspxhome.com