博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
webmagic学习之路-1:采集安居客列表页测试
阅读量:4554 次
发布时间:2019-06-08

本文共 3642 字,大约阅读时间需要 12 分钟。

---恢复内容开始---

package com.action;import java.util.ArrayList;import java.util.List;import java.util.regex.Matcher;import java.util.regex.Pattern;import javax.management.JMException;import org.bson.Document;import com.model.Model_AnjukeList;import com.mongodb.BasicDBObject;import com.util.Constants;import com.util.GetDate;import com.util.MD5With32;import com.util.MongoDBUtil;import us.codecraft.webmagic.Page;import us.codecraft.webmagic.Site;import us.codecraft.webmagic.Spider;import us.codecraft.webmagic.monitor.SpiderMonitor;import us.codecraft.webmagic.pipeline.ConsolePipeline;import us.codecraft.webmagic.processor.PageProcessor;public class GetAnjukeListNum implements PageProcessor {    public static Model_AnjukeList anjukeList;    public static List
list = new ArrayList
(); public static List
list_insert = new ArrayList
(); private Site site = Site.me().setSleepTime(1000).setRetryTimes(3).setCharset("UTF-8") .setUserAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/31.0.1650.63 Safari/537.36"); @Override public Site getSite() { // TODO Auto-generated method stub return this.site; } @Override public void process(Page page) { String found = null; BasicDBObject doc = null; page.addTargetRequests(Constants.list_urls); System.out.println("code:"+page.getStatusCode()); String pg = page.getHtml().toString(); if(pg.length()>100){ Pattern p = Pattern.compile(Constants.anjuke_Reg_Found); Matcher m = p.matcher(pg); while(m.find()){ found = m.group(0).replace("\"found\":", "").replace(",", ""); String id = MD5With32.encryption(page.getUrl().toString()); if(!Constants.map_urls.containsKey(id)){ continue; } Model_AnjukeList model_AnjukeList = Constants.map_urls.get(id); //mongo存储! doc = new BasicDBObject("_id",id) .append("city", model_AnjukeList.getCity()) .append("towards", model_AnjukeList.getTowards()) .append("zone_urls", model_AnjukeList.getZone_urls()) .append("zone", model_AnjukeList.getZone()) .append("site", model_AnjukeList.getSite()) .append("decoration", model_AnjukeList.getDecoration()) .append("flag", model_AnjukeList.getFlag()) .append("street", model_AnjukeList.getStreet()) .append("type", model_AnjukeList.getType()) .append("page", model_AnjukeList.getPage()) .append("urls", model_AnjukeList.getUrls()) .append("found", found) .append("update_time", model_AnjukeList.getUpdate_time()) ; list_insert.add(doc); } } } public static void main(String[] args) { String city = "北京"; String urls = "https://beijing.anjuke.com/sale/"; MongoGetUrls.GetMongoUrls(city); System.out.println("任务总数:"+Constants.list_urls.size()); Spider.create(new GetAnjukeListNum()) .addUrl(urls) .addPipeline(new ConsolePipeline()) .thread(30) .run(); MongoDBUtil.saveMany(..., list_insert); }}

 

第一次用webmagic 很多东西不懂,也没有重写。

很多都是用纯java实现

让我们慢慢发现webmagic的强大吧!

转载于:https://www.cnblogs.com/tnsay/p/10895284.html

你可能感兴趣的文章
二叉树_非递归先中后序_递归非递归求深度
查看>>
20181227 新的目标
查看>>
HDFS写流程
查看>>
生产环境服务器环境搭建+ 项目发布
查看>>
js按条件分类json数组,并合计同组数据(一维转换为二维)
查看>>
Exp6 信息搜集与漏洞扫描
查看>>
redis4安装
查看>>
使用命令wsimport构建WebService客户端[转]
查看>>
第八遍:链接详解
查看>>
Qt5.5 使用smtp发邮件的各种坑
查看>>
js奇葩错误 字符串传递问题
查看>>
人之初,性本恶
查看>>
springboot 端口号
查看>>
使用AChartEngine画动态曲线图
查看>>
安卓项目五子棋代码详解(四)
查看>>
urllib 学习一
查看>>
bzoj4196 [Noi2015]软件包管理器——树链剖分
查看>>
kafka源码阅读环境搭建
查看>>
UI设计
查看>>
androidtab
查看>>