比其他方法都要简单的java实现网络爬虫

用java实现网络爬虫

一.简单介绍爬虫

网络爬虫(Web Crawler),又称为网络蜘蛛(Web Spider)或 Web 信息采集器,是一种按照一定规则,自动抓取或下载网络信息的计算机程序或自动化脚本,是目前搜索引擎的重要组成部分。
我的这个demo 是基于Jsoup做个简单实现java爬虫的
jsoup是一款Java的HTML解析器,主要用来对HTML解析 jsoup 中文官网

二.所需工具

工具就是不需要任何工具,只需要一个架包和手写一小段代码即可
架包jsoup-1.10.2.jav
在这里插入图片描述
大家可以去网上下载一下,或者我这也有

三.实现

这里我们以一个京东商城的电脑类为例:
下面是京东官网的电脑类商品界面,我们首先需要复制他的网址

在这里插入图片描述

网址一定要全部复制下来,用下面这段代码实现

//创建一个集合准备接受爬取到的内容作为容器
 List<Cont> list=new ArrayList<Cont>();
        //这个地方就是我们刚刚复制的网址,把他放进去
        String url = "https://search.jd.com/Search?keyword=%E7%94%B5%E8%84%91&enc=utf-8&wq=%E7%94%B5%E8%84%91&pvid=711b990fcd804921b3274415b66a9935";
     
        Document docment = Jsoup.parse(new URL(url), 30000);

接下来就是爬取他的内容,我们可以看到整个页面是有很多电脑商品的,所以我们先要获取他的总结点,然后循环读取他得每一个和单个商品有关的标签信息,下面这个是他的总标签,也就是所有商品的根节点
在这里插入图片描述
这个class为gl-warp clearfix就是他的总结点,然后再获取总结点下的每一个商品节点

在这里插入图片描述

这个就是他的每一个商品节点,然后我们只需要再拿到每个商品节点下各个属性对应的标签文本或者class文本就行了

        List<A> list=new ArrayList<>();
        String url = "https://search.jd.com/Search?keyword=电脑&enc=utf-8&wq=电脑&pvid=711b990fcd804921b3274415b66a9935";
        Document docment = Jsoup.parse(new URL(url), 30000);
        //获取所有商品的节点
        Elements element = docment.getElementsByClass("gl-warp clearfix");
        //System.out.println(element);
        //获取所有商品下面每个商品的每个属性的父节点
        Elements elements = element.get(0).getElementsByClass("gl-i-wrap");
        A a=null;
        //遍历所有的标签节点
        for (Element el : elements) {
            a=new A();
            //获取图片(根节点下的img标签里头的src属性的文本)
            a.setImgUrl(el.getElementsByTag("img").eq(0).attr("src"));
            //获取价格
            a.setMoney(el.getElementsByTag("i").eq(0).text());
            //获取名字
            a.setName(el.getElementsByTag("em").eq(1).text());
            list.add(a);
        }

整体代码就这样子,很简单,多上上手就会了

在这里插入图片描述
关注微信公众号带你知道更多~

  • 15
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值