jsoup的使用

jsoup介绍

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

主要功能

从一个URL,文件或字符串中解析出HTML。

使用DOM或css选择器来查找、取出数据。

可操作HTML元素、属性、文本。

直接请求URL

一开始直接使用jsonp的connect方法调用上节说的请求电影json数据会报错

错误如下:

这里不太清楚发生错误的原因,毕竟换了一个连接变成http://www.w3school.com.cn/b.asp就可以正常输出html页面

如下

后来看了下网上,又看了看异常代码,发现是缺少contentType设置,于是加ignoreContentType(true)设置

public classSimple {public static voidmain(String[] args) {try{

Document doc=Jsoup

.connect("https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=time&page_limit=20&page_start=0")

.ignoreContentType(true).userAgent("Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36")

.timeout(5000)

.get();//Document doc1 = Jsoup//.connect("http://www.w3school.com.cn/b.asp").get();

System.out.println(doc);

}catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

}

成功

整合一下,用jsoup来抓取电影信息如下

main里运行:

public static voidtest2(){try{

Response res=Jsoup

.connect("https://movie.douban.com/j/search_subjects?type=movie&tag=%E7%83%AD%E9%97%A8&sort=time&page_limit=20&page_start=0")

.header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8")

.header("Host", "movie.douban.com")

.header("Accept-Encoding", "gzip, deflate")

.header("Accept-Language","zh-cn,zh;q=0.5")//.header("Content-Type", "application/json;charset=UTF-8")

.header("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/72.0.3626.121 Safari/537.36")

.header("Connection", "keep-alive")

.header("Cache-Control", "max-age=0")

.ignoreContentType(true)

.timeout(5000)

.execute();

String body=res.body();

JSONObject jsonObject=JSONObject.parseObject(body);

JSONArray array= jsonObject.getJSONArray("subjects");for(int i=0;i

JSONObject jo =array.getJSONObject(i);

Movie movie= jo.toJavaObject(Movie.class);

System.out.println(movie);

}//System.out.println(array.get(1));

} catch(IOException e) {//TODO Auto-generated catch block

e.printStackTrace();

}

}

Movie.java:

public class Movie implementsSerializable{/****/

private static final long serialVersionUID = 1L;privateString rate;privateString cover_x;privateString title;privateString url;privateString playable;privateString cover;privateString id;privateString cover_y;privateString is_new;publicMovie() {//TODO Auto-generated constructor stub

}publicMovie(String rate, String cover_x, String title, String url, String playable, String cover, String id,

String cover_y, String is_new) {super();this.rate =rate;this.cover_x =cover_x;this.title =title;this.url =url;this.playable =playable;this.cover =cover;this.id =id;this.cover_y =cover_y;this.is_new =is_new;

}publicString getRate() {returnrate;

}public voidsetRate(String rate) {this.rate =rate;

}publicString getCover_x() {returncover_x;

}public voidsetCover_x(String cover_x) {this.cover_x =cover_x;

}publicString getTitle() {returntitle;

}public voidsetTitle(String title) {this.title =title;

}publicString getUrl() {returnurl;

}public voidsetUrl(String url) {this.url =url;

}publicString getPlayable() {returnplayable;

}public voidsetPlayable(String playable) {this.playable =playable;

}publicString getCover() {returncover;

}public voidsetCover(String cover) {this.cover =cover;

}publicString getId() {returnid;

}public voidsetId(String id) {this.id =id;

}publicString getCover_y() {returncover_y;

}public voidsetCover_y(String cover_y) {this.cover_y =cover_y;

}publicString getIs_new() {returnis_new;

}public voidsetIs_new(String is_new) {this.is_new =is_new;

}

@OverridepublicString toString() {return "Movie [评分:" + rate + ", 电影:" + title +"]";

}

}

输出

到此,简单的jsoup测试~

java爬虫技术怎么学_java网络爬虫基础学习(四)相关推荐

  1. java爬虫技术的作用_Java网络爬虫怎么实现?

    展开全部 网络爬虫是一个自动提取网页62616964757a686964616fe4b893e5b19e31333365636561的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 传统 ...

  2. python 爬虫源代码-从零开始学Python网络爬虫_源代码.rar

    [实例简介] [实例截图] [核心代码] 从零开始学Python网络爬虫_源代码_1 ├── 58project │ ├── __pycache__ │ │ ├── channel_extract.c ...

  3. python网络爬虫技术-基于Python的网络爬虫技术综述

    汪洋 姜新通 [摘 要]人类社会已经进入大数据时代,这正在改变着我们的工作和生活.随着互联网的兴起和发展,同时也产生了各种对人类有价值的数据.快速搜索数据和充分利用数据信息已成为一个巨大挑战.这样的需 ...

  4. java爬百度翻页_Java网络爬虫爬取百度页面

    最近看到网上介绍爬虫的文章,觉得很有趣,那么心动不如行动,晚上回来的时间刚好用来码代码啦~~ 网络爬虫:按照一定的规则爬取网页上的信息,通常是爬取到一些URL之后然后对这些URL放入队列在一次次的进行 ...

  5. 从零开始学python网络爬虫 epub_从零开始学Python网络爬虫

    领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...

  6. python网络爬虫用到哪些技术_做Python网络爬虫需要掌握哪些核心技术?

    在当下这个社会,如何有效地提取并利用信息成为一个巨大的挑战.基于这种巨大的市场需求,爬虫技术应运而生,这也是为什么现在爬虫工程师的岗位需求量日益剧增的原因.那么做Python网络爬虫需要掌握哪些核心技 ...

  7. 从零开始学python网络爬虫

    大家好哈,最近博主在学习Python,特别是网络数据采集(爬虫).学习期间也碰到了一些问题,在解决问题的同时也大量参看了网上了一些资源,获得了一些经验.所以希望能将学习过程中碰到的问题一并记录下来,同 ...

  8. 《从零开始学Python网络爬虫》罗攀 蒋仟 代码

    第1章 Python零基础语法入门 1.3 函数与控制语句 1.3.1 函数 1.3.2 判断语句 1.3.3 循环语句 1.4 Python数据结构 1.4.1 列表 1.4.2 字典 1.4.3 ...

  9. 从零开始学python网络爬虫读书笔记_从零开始学Python网络爬虫 中文pdf

    资源名称:从零开始学Python网络爬虫 中文pdf 第1章 Python零基础语法入门 1 第2章 爬虫原理和网页构造 17 第3章 我的第一个爬虫程序 26 第4章 正则表达式 45 第5章 Lx ...

  10. 【python爬虫 系列】1.理解网络爬虫

    第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.另外一些不常使用的名字还有 ...

最新文章

  1. uniapp 分享缩略图过大怎么办_女性胸外扩怎么办|3步带你完成改变
  2. 【Android】Activity生命周期(亲测)
  3. 检查用户显示器的分辨率
  4. 【转】Cvmat与IplImage的相互转换
  5. labview与下位机通信的格式问题处理
  6. my current journal index is in q3
  7. 阿里云yum源安装SVN失败的问题
  8. QT学习:获取本机网络信息
  9. java泛型程序设计——泛型类型的继承原则
  10. npm发布vue组件
  11. Linux下的进程池(2)
  12. 霍夫丁不等式及其他相关不等式证明
  13. .tar.bz2文件怎么解压
  14. Axure RP 8: 注册码(亲测可用)
  15. dell服务器进系统失败,如何解决Dell服务器系统开机提示错误
  16. 在Google工作的十年,也是我开心的十年
  17. Fincy APP评测:安全好用的多功能电子钱包
  18. WIN11win10 使用Anaconda下载Pytorch详细教程(包括换源)
  19. java程序之飞机大战_java写飞机大战一
  20. 挖个冰块就能修自己,科学家用「冰」做了辆科考机器车,南极火星都能跑

热门文章

  1. 全屏显示一个图片文件
  2. 当R遇上Docker的第一步
  3. 王建林的一个亿,靠打工能实现么?
  4. python程序判断梅森素数_完美数与梅森素数Python
  5. module_param()函数
  6. 我们一起踩过的坑----react(antd)(二)
  7. C#曲线分析平台的制作(一,ajax+json前后台数据传递)
  8. EC读书笔记系列之18:条款47、48
  9. 体验下Xcode5与ios7
  10. 实现最小宽度的几种方法及CSS Expression