• Java Jsoup 抓取静态网页


    一,简介

    Jsoup:jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。

    因为需要我要爬取数据,结果发现单独 jsoup 只能解析静态的html 文件,对于动态的js加载的HTML 无法获取,这就有很大的局限性。但是一般也只是把jsoup 当作一个解析HTML的工具,不用它来爬取数据,如果需要爬取动态数据,则要配合其他 插件去完成(emmm 目前没有接触到 只知道可以用 )

    jsoup常用方法解析

    emm 我只是简单了解了一下 就不再这里班门弄斧 了

    二,获取网站的图片     

    1.要想使用jsoup 必须引入jar 包。  

    jsoup(一般有版本号).jar (如果找不到资源可以去问万能的度娘 只要你花时间,肯定会找到的)

    2.使用  code= Jsoup.connect(url).execute().body(); 获得网站的源码  (url 为你需要的网站地址)

    定义一个 Document 对象 doc,使用Jsoup.parse(code) 将url 转换为 Document对象,通过该对象

    获取元素:

    主要方法:

    doc.getElementById("id名“) 一般都是唯一的 所以获取的只有一个元素

    doc.getElementsByTagName() 通过标签名获取元素  一种标签在HTML中可以有多个,所以获取到的是多个元素,且返回是以集合的形式返回

    doc.getElementsByClassName() 是通过类名来获取元素,同名的类在HTML中也能存在多个,所以获取到的也是多个元素,同样是以集合的形式返回

    3.获取图片的地址

    一般图片地址都是存储在 img 标签的 src 当作,可以创建一个list 集合 ,将src中的数据读取存储

    将获取的img 存储到 Elements 类型的变量当中,通过遍历变量来获取 src:

    elements.get(i).attr("src")

    4.存储图片 

    将获取的地址存储(改为byte数组 ),并在本地保存。

    Github代码地址

  • 相关阅读:
    pycharm调试时出现十分缓慢,变量数据没法预览的解决办法
    gitignore设置失效的问题
    存储过程计算两个时间段的请假天数
    Vue 多层级目录拖动排序
    vue 动态插入渲染html
    Vue:eliment-ui el-tree动态加载更新
    Angular2+ iframe跨域调用父页面js
    Angular2.0+动态绑定html文本
    Angular2.0+开发 -实现部门树形结构
    Angular2.0+开发(1)-WebStorm配置及第一个Hello World
  • 原文地址:https://www.cnblogs.com/cxy0210/p/12482293.html
Copyright © 2020-2023  润新知