java爬虫技术怎么学_java网络爬虫基础学习(四)
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网络爬虫基础学习(四)相关推荐
- java爬虫技术的作用_Java网络爬虫怎么实现?
展开全部 网络爬虫是一个自动提取网页62616964757a686964616fe4b893e5b19e31333365636561的程序,它为搜索引擎从万维网上下载网页,是搜索引擎的重要组成. 传统 ...
- python 爬虫源代码-从零开始学Python网络爬虫_源代码.rar
[实例简介] [实例截图] [核心代码] 从零开始学Python网络爬虫_源代码_1 ├── 58project │ ├── __pycache__ │ │ ├── channel_extract.c ...
- python网络爬虫技术-基于Python的网络爬虫技术综述
汪洋 姜新通 [摘 要]人类社会已经进入大数据时代,这正在改变着我们的工作和生活.随着互联网的兴起和发展,同时也产生了各种对人类有价值的数据.快速搜索数据和充分利用数据信息已成为一个巨大挑战.这样的需 ...
- java爬百度翻页_Java网络爬虫爬取百度页面
最近看到网上介绍爬虫的文章,觉得很有趣,那么心动不如行动,晚上回来的时间刚好用来码代码啦~~ 网络爬虫:按照一定的规则爬取网页上的信息,通常是爬取到一些URL之后然后对这些URL放入队列在一次次的进行 ...
- 从零开始学python网络爬虫 epub_从零开始学Python网络爬虫
领取成功 您已领取成功! 您可以进入Android/iOS/Kindle平台的多看阅读客户端,刷新个人中心的已购列表,即可下载图书,享受精品阅读时光啦! - | 回复不要太快哦~ 回复内容不能为空哦 ...
- python网络爬虫用到哪些技术_做Python网络爬虫需要掌握哪些核心技术?
在当下这个社会,如何有效地提取并利用信息成为一个巨大的挑战.基于这种巨大的市场需求,爬虫技术应运而生,这也是为什么现在爬虫工程师的岗位需求量日益剧增的原因.那么做Python网络爬虫需要掌握哪些核心技 ...
- 从零开始学python网络爬虫
大家好哈,最近博主在学习Python,特别是网络数据采集(爬虫).学习期间也碰到了一些问题,在解决问题的同时也大量参看了网上了一些资源,获得了一些经验.所以希望能将学习过程中碰到的问题一并记录下来,同 ...
- 《从零开始学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 ...
- 从零开始学python网络爬虫读书笔记_从零开始学Python网络爬虫 中文pdf
资源名称:从零开始学Python网络爬虫 中文pdf 第1章 Python零基础语法入门 1 第2章 爬虫原理和网页构造 17 第3章 我的第一个爬虫程序 26 第4章 正则表达式 45 第5章 Lx ...
- 【python爬虫 系列】1.理解网络爬虫
第一节:理解网络爬虫 1.1网络爬虫的定义 网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序.另外一些不常使用的名字还有 ...
最新文章
- uniapp 分享缩略图过大怎么办_女性胸外扩怎么办|3步带你完成改变
- 【Android】Activity生命周期(亲测)
- 检查用户显示器的分辨率
- 【转】Cvmat与IplImage的相互转换
- labview与下位机通信的格式问题处理
- my current journal index is in q3
- 阿里云yum源安装SVN失败的问题
- QT学习:获取本机网络信息
- java泛型程序设计——泛型类型的继承原则
- npm发布vue组件
- Linux下的进程池(2)
- 霍夫丁不等式及其他相关不等式证明
- .tar.bz2文件怎么解压
- Axure RP 8: 注册码(亲测可用)
- dell服务器进系统失败,如何解决Dell服务器系统开机提示错误
- 在Google工作的十年,也是我开心的十年
- Fincy APP评测:安全好用的多功能电子钱包
- WIN11win10 使用Anaconda下载Pytorch详细教程(包括换源)
- java程序之飞机大战_java写飞机大战一
- 挖个冰块就能修自己,科学家用「冰」做了辆科考机器车,南极火星都能跑