java_网路爬虫_4

Selector 选择器组合使用

el#id: 元素+ID,比如: div#logo

el.class: 元素+class,比如: div.masthead

el[attr]: 元素+属性名,比如: a[href]

任意组合,比如:a[href].highlight

ancestor child: 查找某个元素下子元素,比如:.body p 查找"body"下的所有 p

parent > child: 查找某个父元素下的直接子元素,比如:div.content > p 查找 p

parent > * 查找某个父元素下所有直接子元素

package cn.lala.crawler.jsoup.test;
 
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
 
import java.io.File;
import java.io.IOException;
/**
 组合使用
  */
public class JsoupSelectCombinedTest {
    public static void main(String[] args) throws IOException {
        //使用Jsoup直接解析文件
        Document document = Jsoup.parse(new File("C:\\Users\\小豆豆\\Desktop\\test.html"),
                "UTF-8");
        String str = "";
        //选择器的组合使用
        //1,元素+ID 比如:div#logo
        str=document.select("ns|div#333").text();
        System.out.println("aaa_" + str);
        //元素+class
        str=document.select("div.nnn").text();
        System.out.println("bbb_" + str);
        //元素+属性名
        str=document.select("div[lll]").text();
        System.out.println("ccc_"+str);
        //任意组合
        str=document.select("div[hhh].nnn#123").text();
        System.out.println("ddd_"+str);
        //查找某个元素下的子元素,查找div[hhh].nnn#123这个元素下class为123的子元素
        str=document.select("div[hhh].nnn#123 .123").text();
        System.out.println("eee_"+str);
        //查找某个父元素下的直接子元素
        str=document.select("div[hhh].nnn#123 >a").text();
        System.out.println("fff_"+str);
        //查找某个父元素下所有的子元素
        str=document.select("div[hhh].nnn#123 >*").text();
        System.out.println("ggg_"+str);
    }
}

爬虫分类

网络爬虫按照系统结构和实现技术,大致可以分为以下几种类型:通用网络爬 虫、聚焦网络爬虫、增量式网络爬虫、深层网络爬虫。 实际的网络爬虫系统通 常是几种爬虫技术相结合实现的

1)通用网络爬虫
通用网络爬虫又称全网爬虫(Scalable Web Crawler),爬行对象从一些种子 URL 扩充到整个 Web,主要为门户站点搜索引擎和大型 Web 服务提供商采集数据。 这类网络爬虫的爬行范围和数量巨大,对于爬行速度和存储空间要求较高,对 于爬行页面的顺序要求相对较低,同时由于待刷新的页面太多,通常采用并行工 作方式,但需要较长时间才能刷新一次页面。 简单的说就是互联网上抓取所有数据。

2)聚焦网络爬虫
聚焦网络爬虫(Focused Crawler),又称主题网络爬虫(Topical Crawler),是 指选择性地爬行那些与预先定义好的主题相关页面的网络爬虫。 和通用网络爬虫相比,聚焦爬虫只需要爬行与主题相关的页面,极大地节省了 硬件和网络资源,保存的页面也由于数量少而更新快,还可以很好地满足一些特 定人群对特定领域信息的需求 。 简单的说就是互联网上只抓取某一种数据。

3)增量式网络爬虫
增量式网络爬虫(Incremental Web Crawler)是 指 对 已 下 载 网 页 采 取 增量式更新和只爬行新产生的或者已经发生变化网页的爬虫,它能够在一定程度 上保证所爬行的页面是尽可能新的页面。 和周期性爬行和刷新页面的网络爬虫相比,增量式爬虫只会在需要的时候爬 行新产生或发生更新的页面 ,并不重新下载没有发生变化的页面,可有效减少 数据下载量,及时更新已爬行的网页,减小时间和空间上的耗费,但是增加了爬 行算法的复杂度和实现难度。 简单的说就是互联网上只抓取刚刚更新的数据。

4)Deep Web 爬
Web 页面按存在方式可以分为表层网页(Surface Web)和深层网页(Deep Web,也称 Invisible Web Pages 或 Hidden Web)。 表层网页是指传统搜索引擎可以索引的页面,以超链接可以到达的静态网页为 主构成的 Web 页面。 Deep Web 是那些大部分内容不能通过静态链接获取的、隐藏在搜索表单后 的,只有用户提交一些关键词才能获得的 Web 页面。

你可能感兴趣的:(java,爬虫,前端)