Java爬虫介绍

举报
holo.yh 发表于 2021/10/30 23:46:54 2021/10/30
【摘要】 一、爬虫技术随着网络的迅速发展,万维网成为大量信息的载体,而信息的采集是一项重要的工作,如果单纯靠人力进行信息采集,不仅低效繁琐,搜索的成本也会提高。那么如果有效地提取并利用这些信息成为一个巨大的挑战。爬虫一般指网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本,可以自动采集所有其能够访问到的页面内容,以获取相关数据。从功能上来讲,爬虫一般分为数据采集...

一、爬虫技术

  • 随着网络的迅速发展,万维网成为大量信息的载体,而信息的采集是一项重要的工作,如果单纯靠人力进行信息采集,不仅低效繁琐,搜索的成本也会提高。那么如果有效地提取并利用这些信息成为一个巨大的挑战。

  • 爬虫一般指网络爬虫(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或脚本,可以自动采集所有其能够访问到的页面内容,以获取相关数据。

  • 从功能上来讲,爬虫一般分为数据采集,处理,存储三个部分。

二、Jsoup爬虫技术栈

1)Jsoup爬虫技术栈1

  • Jsoup是一个Java HTML Parser,能够从URL、文件或字符串中解析URL。它提供了一套非常省力的API,可通过DOM,CSS及类似于jQuery的操作方法来取出和操作数据。

  • Jsoup的主要功能:

    --1、从URL、文件或字符串中抓取和解析HTML

    --2、使用CSS选择器或DOM遍历查找和提取数据

    --3、可操作HTML元素、属性和文本

2)Jsoup爬虫技术栈2

  • Jsoup接续URL

    Documnet doc = Jsoup.connect("http://example.com").get();
    //获取标题内容
    Stirng title = doc.title();
  • Jsoup.connect(String url)方法返回来一个org.jsoup.Connection对象。在Connection对象中,可以使用get()或post()方法来执行请求,并返回一个org.jsoup.nodes.Document对象,可以通过解析Document对象来获取我们想要的元素。

3)Jsoup爬虫技术栈3

  • Jsoup解析字符串

    String html = "<html><head><title>Firstparse</title></head><body><p>Parsed HTML into a doc.</p></body></html>"
    Document doc = Jsoup.parse(html);
    //获取标题内容
    String title = doc.title();
  • Jsoup.parse(String str)方法可以解析HTML字符串,并返回一个Document对象,可以通过解析Document对象来获取我们想要的元素。

4)Jsoup爬虫技术栈4

  • Jsoup解析文件

    Document doc = Jsoup.parse(new File("F:\\jsoup.html"),"UTF-8");
    //获取标题内容
    String title = doc.title();
  • Jsoup.parse(File file,String charSetName)方法可以加载并解析一个HTML文件,并返回一个Document对象,可以通过解析Document对象来获取我们想要的元素。

5)Jsoup爬虫技术栈5

  • 使用选择器语法查找元素

    -- jsoup元素支持类似于CSS(或jquery)的选择器语法,来实现非常强大和灵活的查找功能。jsoup提供了select(String selector)方法,可以实现指定元素的过滤,或链式选择访问,该方法将放回一个Elements集合对象,并提供一组方法来抽取和处理结果。

  • selector选择器概述:

    -- tagname:按照标签查找元素

    -- #id:通过id查找元素

    -- .class:通过类名查找元素

    -- [attribute]:利用属性名查找元素

    -- [attr=value]:利用属性值查找元素

6)Jsoup爬虫技术栈6

  • selector选择器的组合使用:

    -- el#id:元素+id

    -- el.class:元素+class

    -- el[attr]:元素+属性名

    -- 任意组合:例如 元素[属性名].class

7)Jsoup爬虫技术栈7

  • Elements提供了一系列类似于DOM的方法来提取和操作他们的数据:

    -- id():从元素中获取id

    -- className:从元素中获取className

    -- attr(String str):从元素中获取属性str的值

    -- attrbutes:从元素中获取所有属性attributes

    -- text():从元素中获取文本内容

三、综合实战

  • 以CSDN认证的企业博客,华为开发者论坛为例,需要实现的需求:

    -- 获取博主的博客文章数量

    -- 获取博主的博客文章列表的页数

    -- 获取博主的每篇博客文章的信息(网址、创建时间、标题)

    -- 获取每篇博客文章中的图片链接

    -- 将所有获取的数据存储到数据库中

四、Jsoup多线程爬虫

  • 多线程可以同步完成多项任务,通过提高资源使用效率来提高系统的效率

  • 案例:使用多线程的方式,进行喜马拉雅专辑的数据爬取

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。