package com.wilian.astro.webmagic.follifollie;
import com.wilian.astro.webmagic.vo.WatchVO;
import us.codecraft.webmagic.Page;
import us.codecraft.webmagic.Site;
import us.codecraft.webmagic.Spider;
import us.codecraft.webmagic.processor.PageProcessor;
/**
*
* @ClassName: OfficialWebsitePageProcessor
* @Description: 官网数据
* @author PENGDI052
* @date 2018年4月16日
*
*/
public class OfficialWebsitePageProcessor implements PageProcessor {
// 官网手表入口页面&分页
// http://www.follifollie.com.cn/ch-ch/online-shop/watches/all#pg=1
// 产品详情页面
// http://www.follifollie.com.cn/ch-ch/online-shop/watches/jewelled/wf9a019bsw_xx-carousel-%E7%B3%BB%E5%88%97%E6%89%8B%E8%A1%A8
private static final String DETAIL_URL = "http://www.follifollie.com.cn/ch-ch/online-shop/watches/[a-zA-z]+/[\\w]+";
private static final String LIST_URL = "http://www.follifollie.com.cn/ch-ch/online-shop/watches/all#pg=[0-9]+";
private Site site = Site.me().setRetryTimes(3).setSleepTime(1000);
public void process(Page page) {
System.out.println("11");
if (page.getUrl().regex(LIST_URL).match()) {
page.addTargetRequests(page.getHtml().links().regex(DETAIL_URL).all());
}
else{
WatchVO watch = new WatchVO();
watch.setSource("官网");
watch.setUrl(page.getUrl().get());
watch.setBrand("Folli Follie");
watch.setSeries(page.getHtml().xpath("/html/body/div[1]/section[1]/div/div/div[3]/div/div/div[1]/div[2]/div/h1/text()").get());
System.out.println(watch.toString());
}
}
public Site getSite() {
return site;
}
public static void main(String[] args) {
Spider.create(new OfficialWebsitePageProcessor())
.addUrl(new String[]{"http://www.follifollie.com.cn/ch-ch/online-shop/watches/all#pg=1"})
.thread(5)
.run();
}
}
log4j.properties
log4j.rootLogger=INFO, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.Threshold=INFO
log4j.appender.stdout.ImmediateFlush=true
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %X{RequestId} - %m%n
log4j.appender.mongodb=org.apache.log4j.ConsoleAppender
log4j.appender.mongodb.Target=System.out
log4j.appender.mongodb.Threshold=DEBUG
log4j.appender.mongodb.ImmediateFlush=true
log4j.appender.mongodb.layout=org.apache.log4j.PatternLayout
log4j.appender.mongodb.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss,SSS} %5p %X{RequestId} - %m%n
package com.wilian.astro.webmagic.vo;
import java.util.Date;
public class WatchVO {
private String brand; // 品牌
private String imgUrl; // 图片
private String salePrice ;//当前售价
private String discount; //折扣
private String price ; //挂牌价格
private String model; //型号,品牌下的具体型号
private String style ; //类型,石英,陶瓷,机械
private String series ;// 系列
private String source; //数据来源
private String url ; //来源网址
private String stock; //库存
private Date createDate;//创建时间
private Date updateDate; //更新时间
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getImgUrl() {
return imgUrl;
}
public void setImgUrl(String imgUrl) {
this.imgUrl = imgUrl;
}
public String getSalePrice() {
return salePrice;
}
public void setSalePrice(String salePrice) {
this.salePrice = salePrice;
}
public String getDiscount() {
return discount;
}
public void setDiscount(String discount) {
this.discount = discount;
}
public String getPrice() {
return price;
}
public void setPrice(String price) {
this.price = price;
}
public String getStyle() {
return style;
}
public void setStyle(String style) {
this.style = style;
}
public String getSource() {
return source;
}
public void setSource(String source) {
this.source = source;
}
public String getUrl() {
return url;
}
public void setUrl(String url) {
this.url = url;
}
public String getStock() {
return stock;
}
public void setStock(String stock) {
this.stock = stock;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
public Date getUpdateDate() {
return updateDate;
}
public void setUpdateDate(Date updateDate) {
this.updateDate = updateDate;
}
public String getModel() {
return model;
}
public void setModel(String model) {
this.model = model;
}
public String getSeries() {
return series;
}
public void setSeries(String series) {
this.series = series;
}
public String toString() {
return "WatchVO [brand=" + brand + ", imgUrl=" + imgUrl
+ ", salePrice=" + salePrice + ", discount=" + discount
+ ", price=" + price + ", model=" + model + ", style=" + style
+ ", series=" + series + ", source=" + source + ", url=" + url
+ ", stock=" + stock + ", createDate=" + createDate
+ ", updateDate=" + updateDate + "]";
}
}
相关推荐
该项目是一个基于Java的WebMagic爬虫设计源码,专注于爬取2023年全国高校招生计划信息。项目共包含143个文件,其中101个XML配置文件、26个Java源文件、3个Markdown文档、2个Git忽略文件、2个IntelliJ项目文件、2个...
总结起来,这个项目是一个基于Maven构建的WebMagic爬虫案例,专注于抓取Oschina网站的数据。通过理解和学习这个项目,你可以了解如何使用Maven管理项目依赖,以及如何使用WebMagic框架构建一个完整的网络爬虫,包括...
以上就是Spring Boot整合WebMagic爬虫框架,并将数据存储到数据库的基本步骤和关键知识点。通过这样的实践,不仅可以学习到爬虫技术,还能加深对Spring Boot的理解,提升项目开发能力。在实际开发中,还需要根据具体...
Java WebMagic是一个强大的开源Web爬虫框架,专为简化网页抓取而设计。它提供了简单易用的API,使得开发者可以快速地...提供的链接中包含了更多详细教程和案例,推荐深入学习,以便更好地掌握Java WebMagic爬虫的使用。
本项目是基于Java的WebMagic爬虫框架设计源码,包含291个文件,其中主要包含233个java源代码文件,18个xml配置文件等。系统采用了Java、HTML、JavaScript、Ruby、Python、Shell和Kotlin技术,实现了WebMagic爬虫框架...
【标题】:基于WebMagic爬虫的表情包案例 在当今互联网时代,表情包已经成为网络交流的重要组成部分,它们丰富了我们的在线对话,传达了各种情绪。WebMagic是一个强大的Java爬虫框架,它允许开发者轻松地抓取网页上...
基于springboot底座、webmagic爬虫内核、xxl-job任务定时调度实现的分布式爬虫平台资料齐全+文档详细.zip 【备注】 1、该项目是个人高分项目源码,已获导师指导认可通过,答辩评审分达到95分 2、该资源内项目代码都...
通过以上内容,你应该对WebMagic爬虫技术有了基本的认识。实践是最好的老师,动手尝试创建自己的爬虫项目,你会发现WebMagic的强大和便捷。在学习过程中,不断探索和理解其内部机制,能够进一步提升你的爬虫开发能力...
基于springboot底座、webmagic爬虫内核、xxl-job任务定时调度实现的分布式爬虫平台
WebMagic是一个专为Java开发者设计的轻量级网络爬虫框架。它的主要目标是提供一个...以上就是关于WebMagic爬虫框架的详细解析,通过这个框架,开发者可以高效、灵活地构建自己的网络爬虫项目,满足各种数据抓取需求。
【webmagic爬虫项目】是一个基于Java开发的高效、易用且可扩展的网页抓取框架。该项目利用Maven作为构建工具,使得开发者能够快速搭建起一个完整的爬虫工程。在描述中提到,可以直接运行`SpiderOschinaServiceImpl`...
WebMagic是一个开源的Java爬虫框架,它设计的目标是简化网页抓取的流程,使得开发者能够更加专注于数据的提取和处理。在这个例子中,我们利用WebMagic来抓取某个特定博客的所有文章标题,这是一个非常基础但实用的...
反爬虫应对: 由于爬虫的存在,一些网站采取了反爬虫措施,如验证码、IP封锁等。爬虫工程师需要设计相应的策略来应对这些挑战。 爬虫在各个领域都有广泛的应用,包括搜索引擎索引、数据挖掘、价格监测、新闻聚合等...
该程序能够通过爬虫工具自动下载国家统计中心的行政区划代码到指定的数据库中的表中。将工程导入eclipse中,运行GithubRepoPageProcessor类的main方法即可,需要对数据库进行配置,以及建相应表建表语句在database...
爬虫-webmagic学习总结文档,主要介绍本人学习爬虫的小总结
在本项目中,我们利用SpringBoot、WebMagic和Mybatis等技术构建了一个完整的爬虫框架,同时也引入了多数据源的支持,以适应更复杂的数据存储需求。 首先,SpringBoot是Spring框架的一种轻量级实现,它简化了项目的...
《z2py:基于Webmagic爬虫实现的最爱片源网源代码解析》 Webmagic,作为一个强大的Python爬虫框架,被广泛应用于数据抓取、信息处理和数据分析等领域。本项目"z2py",正是基于Webmagic实现的最爱片源网的源代码,为...
【标题】"基于 webmagic 的 Java 爬虫应用.zip" 涉及的主要知识点是使用 Java 开发的 WebMagic 爬虫框架。WebMagic 是一个轻量级的 Java 网络爬虫框架,它设计简洁,易于上手,适合进行网页数据抓取。以下是对这个...