JAVA爬虫三种方法
文章目录
- 前言
- 一、JDK
- 二、HttpClient
- 三、Jsoup
- 总结
前言
记录JAVA爬虫三种方式
一、JDK
使用JDK自带的URLConnection实现网络爬虫。
public void testGet() throws Exception {//1.确定要访问/爬取的URLURL url = new URL("https://blog.csdn.net/weixin_40298650/article/details/118490147?spm=1001.2014.3001.5501");//2.获取连接对象HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();//3.设置连接信息:请求方式/请求参数/请求头...urlConnection.setRequestMethod("GET");//请求方式默认就是GET,注意要大写urlConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36");urlConnection.setConnectTimeout(30000); //设置超时时间,单位毫秒//4.获取数据InputStream in = urlConnection.getInputStream();BufferedReader reader = new BufferedReader(new InputStreamReader(in));String line;String html ="";while ((line = reader.readLine()) !=null){html += line +"\n";}System.out.println(html);//5.关闭资源in.close();reader.close();}
二、HttpClient
使用HttpClient实现网络爬虫
public void testGet() throws Exception {//1.创建HttpClient对象//DefaultHttpClient httpClient = new DefaultHttpClient();CloseableHttpClient httpClient = HttpClients.createDefault();//2.创建HttpGet请求并进行相关设置HttpGet httpGet = new HttpGet("https://blog.csdn.net/weixin_40298650/article/details/118490147?spm=1001.2014.3001.5501");httpGet.setHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36");//3.发起请求CloseableHttpResponse response = httpClient.execute(httpGet);//4.判断响应状态码并获取响应数据if(response.getStatusLine().getStatusCode() == 200){//200表示响应成功String html = EntityUtils.toString(response.getEntity(), "UTF-8");System.out.println(html);}//5.关闭资源httpClient.close();response.close();}
三、Jsoup
使用Jsoup实现页面解析
public void testGetDoument() throws Exception {//Document doc = Jsoup.connect("https://blog.csdn.net/weixin_40298650/article/details/118490147?spm=1001.2014.3001.5501").get();Document doc = Jsoup.parse(new URL("https://blog.csdn.net/weixin_40298650/article/details/118490147?spm=1001.2014.3001.5501"), 1000);//Document doc = Jsoup.parse(new File("jsoup.html"), "UTF-8");//String htmlStr = FileUtils.readFileToString(new File("jsoup.html"), "UTF-8");//Document doc = Jsoup.parse(htmlStr);System.out.println(doc);Element titleElement = doc.getElementsByTag("title").first();String title = titleElement.text();System.out.println(title);}
总结
本文仅仅简单介绍了JAVA网络爬虫的爬取方法,抛砖引玉。
JAVA爬虫三种方法相关推荐
- python定时爬虫三种方法
python定时爬虫三种方法 第一种 import timefrom scrapy import cmdlinedef doSth():# 把爬虫程序放在这个类里 zhilian_spider 是爬虫 ...
- Java中用三种方法输出字符串_java中两个字符串连接的三种方法
java中两个字符串连接有以下三种方法: 第一种方法:使用+: 第二种方法:使用concat(): 第三种方法:使用append(): 如下代码: public class Practice { // ...
- java中三种方法_Java文件I/O的三种方法
Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...
- java反射三种方法_Java基础入门要学哪些 怎么掌握反射和枚举
Java基础入门要学哪些?怎么掌握反射和枚举?Java是老牌编程语言,是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java所包含的基础知识点很多,只有掌握了这些知识才能更好地运用,下面就来给 ...
- python定时爬虫三种方法_Python爬虫定时计划任务的几种常见方法
记得以前的Windows任务定时是可以正常使用的,今天试了下,发现不能正常使用了,任务计划总是挂起.接下来记录下Python爬虫定时任务的几种解决方法. 1.方法一.while True 首先最容易的 ...
- java线程三种方法,Java基础_线程的使用及创建线程的三种方法
线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...
- Java中三种方法交换两个变量的值
1.中间变量 是最普也是最广泛使用的交换方式: 这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换. 2.加减运算 前提只能是数字 因为这种 ...
- java while九九乘法表_用java实现三种方法循环输出九九乘法表:
展开全部 for循环的结构:for(表达式 1:表达式 2:表达式 3) { 循环体 } 表达式 1:一般为赋值表达式:62616964757a686964616fe78988e69d83313 ...
- Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...
Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn 发布于:2012-09-15 ...
最新文章
- 人工智能热潮下,我们该如何紧跟科技脚步呢?
- 伍迷创意随想集 之 烧菜小帮手
- USACO network of school 强连通分量
- Mat转CImage
- 排序算法-01冒泡排序(Python实现)
- 盘点数据科学最流行的29个Python库
- 福昕pdf转word免费版下载(附教程)
- win10任务栏透明+变窄+免安装
- ESXI7.0与6.7官网下载地址
- V4L2驱动的移植与应用(二)
- MUI调用照片以及裁剪和图库照片上传到服务器【后端部分Flask+MUI】
- 更新三转的skills.txt
- NosqlBooster For MongoDB解决License问题
- 潘多拉路由器搭建php,MT7620A 无线路由 极路由 1S 定制版 OPERWRT 潘多拉 中继 营销...
- tomcat 报错 Status 500 - Mapper method ‘xxxxx‘ has an unsupported return type: class xxx
- 《自控力》与《学习之道》
- 全国大学生英语竞赛考题总结
- 优雅地封装和使用 ViewBinding,该替代 Kotlin synthetic 和 ButterKnife 了
- ogre1.9环境搭建
- 直流电机,传递函数,模糊控制pid算法,matlab代码