教您使用java爬虫gecco抓取JD全部商品信息(一)

基于网络爬虫的股票信息收集软件的设计与实现 在当今社会,互联网的发展,给人类的生活和工作带来了极大的便利,随着互联网的进步与改革,“大数据”这个词在近几年逐渐的渗透进我们生活中。大数据,它的基本的含义是指不能在能承受的时间内使用常规的软件捕捉、管辖和使用的数据集合,是必须要新的处理方法才可能有更加强大的决策能力、洞察能力和优化流程能力从而适合大量、高增长和多样的信息资源。(2)将爬取的数据保存;今天,我的毕业设计主题就是《基于网络爬虫的股票信息收集软件的设计与实现》,该设计主要分为如下四个部分:(1)首先需要设计一个网络爬虫的程序对目标网站( 阅读详情
摘要: 如果对gecco还没有了解可以参看一下gecco的github首页,https://github.com/xtuhcy/gecco。gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定。 要抓取JD网站的全部商品信息,我们要先分析一下网站,京东网站可以大体分为三级,首页上通过分类跳转到商品列表页,商品列表页对每个商品有详情页。那么我们通过找到所有分类就能逐个分类抓取商品信息。

教您使用java爬虫gecco抓取JD全部商品信息(一)

gecco爬虫

如果对gecco还没有了解可以参看一下gecco的github首页。gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定。

JD网站的分析

要抓取JD网站的全部商品信息,我们要先分析一下网站,京东网站可以大体分为三级,首页上通过分类跳转到商品列表页,商品列表页对每个商品有详情页。那么我们通过找到所有分类就能逐个分类抓取商品信息。

入口地址

http://www.jd.com/allSort.aspx,这个地址是JD全部商品的分类列表,我们以该页面作为开始页面,抓取JD的全部商品信息

新建开始页面的HtmlBean类AllSort

@Gecco(matchUrl="http://www.jd.com/allSort.aspx", pipelines={"consolePipeline", "allSortPipeline"})
public class AllSort implements HtmlBean {

    private static final long serialVersionUID = 665662335318691818L;

    @Request
    private HttpRequest request;

    //手机
    @HtmlField(cssPath=".category-items > div:nth-child(1) > div:nth-child(2) > div.mc > div.items > dl")
    private List<Category> mobile;

    //家用电器
    @HtmlField(cssPath=".category-items > div:nth-child(1) > div:nth-child(3) > div.mc > div.items > dl")
    private List<Category> domestic;

    public List<Category> getMobile() {
        return mobile;
    }

    public void setMobile(List<Category> mobile) {
        this.mobile = mobile;
    }

    public List<Category> getDomestic() {
        return domestic;
    }

    public void setDomestic(List<Category> domestic) {
        this.domestic = domestic;
    }

    public HttpRequest getRequest() {
        return request;
    }

    public void setRequest(HttpRequest request) {
        this.request = request;
    }
}

可以看到,这里以抓取手机和家用电器两个大类的商品信息为例,可以看到每个大类都包含若干个子分类,用List<Category>表示。gecco支持Bean的嵌套,可以很好的表达html页面结构。Category表示子分类信息内容,HrefBean是共用的链接Bean。

public class Category implements HtmlBean {

    private static final long serialVersionUID = 3018760488621382659L;

    @Text
    @HtmlField(cssPath="dt a")
    private String parentName;

    @HtmlField(cssPath="dd a")
    private List<HrefBean> categorys;

    public String getParentName() {
        return parentName;
    }

    public void setParentName(String parentName) {
        this.parentName = parentName;
    }

    public List<HrefBean> getCategorys() {
        return categorys;
    }

    public void setCategorys(List<HrefBean> categorys) {
        this.categorys = categorys;
    }

}

获取页面元素cssPath的小技巧

上面两个类难点就在cssPath的获取上,这里介绍一些cssPath获取的小技巧。用Chrome浏览器打开需要抓取的网页,按F12进入发者模式。选择你要获取的元素,如图:

输入图片说明 在浏览器右侧选中该元素,鼠标右键选择Copy--Copy selector,即可获得该元素的cssPath

body > div:nth-child(5) > div.main-classify > div.list > div.category-items.clearfix > div:nth-child(1) > div:nth-child(2) > div.mc > div.items

如果你对jquery的selector有了解,另外我们只希望获得dl元素,因此即可简化为:

.category-items > div:nth-child(1) > div:nth-child(2) > div.mc > div.items > dl

编写AllSort的业务处理类

完成对AllSort的注入后,我们需要对AllSort进行业务处理,这里我们不做分类信息持久化等处理,只对分类链接进行提取,进一步抓取商品列表信息。看代码:

@PipelineName("allSortPipeline")
public class AllSortPipeline implements Pipeline<AllSort> {

    @Override
    public void process(AllSort allSort) {
        List<Category> categorys = allSort.getMobile();
        for(Category category : categorys) {
            List<HrefBean> hrefs = category.getCategorys();
            for(HrefBean href : hrefs) {
                String url = href.getUrl()+"&delivery=1&page=1&JL=4_10_0&go=0";
                HttpRequest currRequest = allSort.getRequest();
                SchedulerContext.into(currRequest.subRequest(url));
            }
        }
    }

}

@PipelinName定义该pipeline的名称,在AllSort的@Gecco注解里进行关联,这样,gecco在抓取完并注入Bean后就会逐个调用@Gecco定义的pipeline了。为每个子链接增加"&delivery=1&page=1&JL=4_10_0&go=0"的目的是只抓取京东自营并且有货的商品。SchedulerContext.into()方法是将待抓取的链接放入队列中等待进一步抓取。

转:https://my.oschina.net/u/2336761/blog/620158


JD京东爬虫-商品评论爬虫-----附源码 JD京东爬虫-商品评论爬虫 附源码 本教程适合初学者。 分析开始--------------- 打开京东商品链接,打开抓包工具(加载网页后打开抓包工具,发现没有抓到数据包,刷新网页就行),这边直接筛选js了,就不用看那么多内容。然后在响应数据中看看有没有想要的评论数据。 然后双击抓到的数据包,或者复制url进入浏览器。 打开后发现是json数据,看到这里是不是头皮发麻,哈哈哈,不要慌!管它呢么多,咱们要的是文字的评论数据,直接使用正则就好了。有时不得不说,正则真的是很好用的。 但是细心地同志会 阅读详情

相关推荐

jd爬虫全流程requests+json+etree+pandas

爬虫全流程详细requests+pandas+etree+json 函数与类之间的调用关系

weixin_41104557的博客 819

java爬虫 题库_教您使用java爬虫gecco抓取JD全部商品信息(三)

详情页抓取商品的基本信息抓取完成后,就要针对每个商品的详情页进行抓取,可以看到详情页的地址格式一般如下:外链网址已屏蔽。我们建立商品详情页的Bean:@Gecco(matchUrl="外链网址已屏蔽{code}.html", pipelines="consolePipeline")public classProductDetailimplementsHtmlBean{private static ...

weixin_42371226的博客 274

JD网站爬虫

JD网站的爬虫,爬取某个商品的基本信息.保存到MongoDB数据中

java爬虫 京东_教您使用java爬虫gecco抓取JD全部商品信息(一)

#教您使用java爬虫gecco抓取JD全部商品信息(一) ##gecco爬虫 如果对gecco还没有了解可以参看一下gecco的github首页。gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定。 ##JD网站的分析 要抓取JD网站的全部商品信息,我们要先分析一下网站,京东网站可以大体分为三级,首页上通过分类跳转到商品列表页,商品列表页对每个商品有详情页。那么我们通过找到所有分...

weixin_35676977的博客 884

用Java写的一个简单爬虫,爬取京东图书信息

用Java写的一个简单爬虫,爬取京东图书信息,使用的maven,很好的一个demo,用户需要配置一下maven

视频编解码——视频编解码器工作原理

目录什么是视频编解码器为什么需要视屏编解码器视频编码器与数字视频容器时评编码器的历史 什么是视频编解码器 简单来说就是用于压缩或解压数字视频的软件或硬件 编码是信息从一种形式或格式转换为另一种形式的过程,解码是编码的反向。 适用于视频 编码是将视频、音频的原始格式的文件通过压缩技术转换成另一种格式(视频如h.264,h.265,m-jpeg等)。 解码是编码的反向过程。应用中,一般是将h.264,h.265格式数据解码成如YUV格式裸流交给显示器显示。 为什么需要视屏编解码器 需要在有限的带宽或存储空间

路人coder 1万+

教您使用DynamicGecco抓取JD全部商品信息

##关于gecco爬虫框架 如果对gecco还没有了解可以参看一下gecco的github首页。gecco爬虫十分的简单易用。之前有一篇文章《教您使用java爬虫gecco抓取JD商品信息》,使用的是传统的注解方式,建议看这篇文章前先了解之前的文章。这里介绍一下DynamicGecco方式,比...

chenmaya8367的博客 394

将Matlab程序打包成.exe独立可执行程序

将Matlab程序打包成.exe独立可执行程序,在未安装Matlab的电脑上也能运行Matlab程序。

简简单单的学习笔记,致力于帮助更多前进路上的朋友~ 5万+

教您使用java爬虫gecco抓取JD全部商品信息

教您使用java爬虫gecco抓取JD全部商品信息gecco爬虫如果对gecco还没有了解可以参看一下gecco的github首页。gecco爬虫十分的简单易用,JD全部商品信息的抓取9个类就能搞定。JD网站的分析要抓取JD网站的全部商品信息,我们要先分析一下网站,京东网站可以大体分为三级,首页上通过分类跳转到商品列表页,商品列表页对每个商品有详情页。那么我们通过找到所有分类就能逐个分类抓取商品信息

xtuhcy的专栏 2354

阿里云导出的镜像raw转换成vmdk格式工具

阿里云导出的镜像raw转换成vmdk格式工具 1.安装java环境,安装教程不介绍了 2.raw2vmdk软件下载: 在我的链接里面: 3.使用 打开cmd.bat软件: java -jar raw2vmdk.jar (原镜像)C:\\images\\raw\\disk.img (转换的镜像)D:\\images\\vmdk\\disk.vmdk 4.vmware打开vmdk文件 ...

3845

STM32CubeMx配置串口使用printf函数打印数据(HAL库开发)

HAL库开发串口,打印printf

m0_58832575的博客 6289

教您使用java爬虫gecco抓取JD全部商品信息(三)

##详情页抓取 商品的基本信息抓取完成后,就要针对每个商品的详情页进行抓取,可以看到详情页的地址格式一般如下:http://item.jd.com/1861098.html。我们建立商品详情页的Bean: @Gecco(matchUrl="http://item.jd.com/{code}.h...

chenmaya8367的博客 368

实测有效防止colab自动断开连接

实测有效防止colab自动断开连接

Thebest_jack的博客 1万+

java爬虫中split的使用_教您使用java爬虫gecco抓取JD全部商品信息(二)

@Gecco(matchUrl="http://list.jd.com/list.html?cat={cat}&delivery={delivery}&page={page}&JL={JL}&go=0", pipelines={"consolePipeline", "productListPipeline"})public class ProductList imp...

weixin_31455121的博客 172

基于ESP32的智能停车场管理系统开发

智能停车场管理系统通过引入物联网(IoT)技术,实现对停车场内车辆的实时监控、空闲车位的管理、车辆的入场与出场控制等功能,大大提高了停车场的利用率和管理效率。通过集成物联网技术、云平台以及先进的传感器和执行器,系统不仅能实时监控停车场的车位状态,还能提供更好的用户体验。本文将介绍如何基于ESP32开发一个智能停车场管理系统,涵盖系统架构、硬件选择、软件开发以及最新技术的应用,帮助开发者实现高效的智能停车管理。ESP32的代码主要负责处理车位传感器的数据,控制LED指示灯的状态,以及与云平台进行数据交互。

2201_76125393的博客 914

Vue+OpenLayers7入门到实战目录,OpenLayers7中文文档,OpenLayers7中文手册,OpenLayers7中文教程,OpenLayers7文档pdf

本篇作为《Vue+OpenLayers7入门到实战》所有文章的二合一汇总目录,方便查找。本专栏源码是由OpenLayers7.x版本结合Vue框架编写。本专栏从Vue搭建脚手架到如何引入OpenLayers7依赖的每一步详细新手教程,再到通过各种入门案例和综合性的实战案例,带领大家快速上手Vue+OpenLayers7开发。

GIS技术方向,GIS地图技术分享(GIS入门、Openlayers教程、Leaflet教程),做最好的GIS地图开发教程。关注博主公众号:eguid 3973

java爬虫异步取数据_教您使用java爬虫gecco抓取JD全部商品信息(三)

##详情页抓取 商品的基本信息抓取完成后,就要针对每个商品的详情页进行抓取,可以看到详情页的地址格式一般如下:http://item.jd.com/1861098.html。我们建立商品详情页的Bean:@Gecco(matchUrl="http://item.jd.com/{code}.html", pipelines="consolePipeline")public class Product...

weixin_30113867的博客 337

Python高阶爬虫:逆向工程模拟Wind/同花顺等金融终端数据抓取

本文详细阐述了模拟金融数据终端进行数据抓取的全套技术方案。我们从法律合规性讲起,选择了Playwright作为核心自动化工具,通过两个实战案例(同花顺网页版和Wind桌面版)演示了从分析、模拟到数据解析的完整流程,并进一步介绍了构建健壮爬虫系统所需的高级技巧。我们的策略是:启动一个由Playwright控制的浏览器,模拟真人登录,然后监听所有网络请求,从中过滤出我们需要的那个数据API。if key in ['f43', 'f169', 'f170', 'f46', 'f60']: # 价格类字段。

2201_76125261的博客 546

教您使用java爬虫gecco抓取JD全部商品信息(二)

##抓取商品列表信息 AllSortPipeline已经将需要进一步抓取的商品列表信息的链接提取出来了,可以看到链接的格式是:http://list.jd.com/list.html?cat=9987,653,659&delivery=1&JL=4_10_0&go=0。...

chenmaya8367的博客 224

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

crawler爬虫demo, 基于gecco

今天我们来写一下基于gecco的爬虫例子。 当然还是以京东页面为例,链接:https://www.jd.com。 首先我们主要需要gecco包:          com.geccocrawler    gecco    1.2.8 好了,我们来不如正题吧! 先创建一个类(CatalogItemModel)有这两个:        @Text @HtmlField(cs

程序燕的博客 1352

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

上一篇: 陈吉平-阿里巴巴离职DBA在35岁总结的职业生涯
下一篇: 教您使用java爬虫gecco抓取JD全部商品信息(二)
ExceptionMapping
博客等级 码龄10年 30粉丝 11原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值