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

代码如下:

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;
 }
}

(0)

相关推荐

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

    复制代码 代码如下: 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; pu

  • 后台运行bat定时器程序示例分享

    新建一个BAT处理文件,命名为timer.bat ,代码如下: 复制代码 代码如下: @echo off:a rem 取得当前时分值set currentTime=%time:~0,2%%time:~3,2%rem echo TIME:%currentTime%rem 调用程序的脚本:"J:\lanp\资治通鉴经典故事 高清晰PDF.PDF" | start /bif %currentTime%==1856 (shutdown /s /t 60)goto :apause 新建一个vds

  • Python设计模式编程中解释器模式的简单程序示例分享

    模式特点:给定一个语言,定义它的文法的一种表示,并定义一个解释器,这个解释器使用该表示来解释语言中的句子. 我们来看一下下面这样的程序结构: class Context: def __init__(self): self.input="" self.output="" class AbstractExpression: def Interpret(self,context): pass class Expression(AbstractExpression): de

  • udp socket客户端和udp服务端程序示例分享

    Udp Socket 复制代码 代码如下: #include <WinSock2.h>#include <stdio.h>#pragma comment(lib, "ws2_32.lib")int main(){// initial socket libraryWORD wVerisonRequested;WSADATA wsaData;int err;wVerisonRequested = MAKEWORD(1, 1);err = WSAStartup(wVe

  • Python开发实例分享bt种子爬虫程序和种子解析

    看到网上也有开源的代码,这不,我拿来进行了二次重写,呵呵,上代码: 复制代码 代码如下: #encoding: utf-8      import socket      from hashlib import sha1      from random import randint      from struct import unpack, pack      from socket import inet_aton, inet_ntoa      from bisect import b

  • uniapp 实现微信小程序全局分享的示例代码

    目录 创建全局分享内容文件 引入并全局注册该文件 自定义页面分享内容  uniapp 实现微信小程序的全局转发给好友/分享到朋友圈的功能.主要使用 Vue.js 的 全局混入 概念. 下面直接上 实现步骤和代码: 创建全局分享内容文件 1.创建一个全局分享的 js 文件.示例文件路径为:@/common/share.js ,在该文件中定义全局分享的内容: export default { data() { return { // 默认的全局分享内容 share: { title: '全局分享的标

  • 微信小程序实现分享朋友圈的图片功能示例

    本文实例讲述了微信小程序实现分享朋友圈的图片功能.分享给大家供大家参考,具体如下: 由于微信小程序只支持分享给朋友或者群,不支持分享到朋友圈,又有分享到朋友圈这个需求,那就要想办法实现这个需求.查阅各种资料,发现基本思路有两种,一种是后端实现,另一种是前端实现,后端实现的方式这里就不讨论了,因为我是不懂后端的,只会前端的东西,所以这里就记录一下前端的实现方法. 前端要实现分享到朋友群,都是通过canvas做一张图片,然后用户手动分享朋友圈.前端具体要做的就是把要分享的页面用canvas重做一遍,

  • python 实现一个贴吧图片爬虫的示例

    今天没事回家写了个贴吧图片下载程序,工具用的是PyCharm,这个工具很实用,开始用的Eclipse,但是再使用类库或者其它方便并不实用,所以最后下了个专业开发python程序的工具,开发环境是Python2,因为大学时自学的是python2 第一步:就是打开cmd命令,输入pip install lxml 如图 第二步:下载一个chrome插件:专门用来将html文件转为xml用xpth技术定位 在页面按下Ctrl+Shift+X即可打开插件进行页面分析 如下图 图中的黑色方框左边填写xpth

  • C#无限栏目分级程序代码分享 好东西第1/3页

    数据库表的结构必须有以下字段:  screen.width*0.7) {this.resized=true; this.width=screen.width*0.7; this.style.cursor='hand'; this.alt='Click here to open new window\nCTRL+Mouse wheel to zoom in/out';}" onclick="if(!this.resized) {return true;} else {window.ope

  • 简单的手工hibernate程序示例

    本文讲述了简单的手工hibernate程序示例.分享给大家供大家参考.具体如下: 今天学习了下hibernate,写了个小的手工程序,总结下, 首先创建数据库表: 复制代码 代码如下: create table increment_testr(id bigint not null, name char(10), primary key(id)); eclipse下,新建工程. 新建数据库表的映射,这里使用手工方式完成: IncrementTester.java public class Incr

随机推荐