用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);
}
整体代码就这样子,很简单,多上上手就会了
关注微信公众号带你知道更多~