文章目录

  • 前言
  • 一、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爬虫三种方法相关推荐

  1. python定时爬虫三种方法

    python定时爬虫三种方法 第一种 import timefrom scrapy import cmdlinedef doSth():# 把爬虫程序放在这个类里 zhilian_spider 是爬虫 ...

  2. Java中用三种方法输出字符串_java中两个字符串连接的三种方法

    java中两个字符串连接有以下三种方法: 第一种方法:使用+: 第二种方法:使用concat(): 第三种方法:使用append(): 如下代码: public class Practice { // ...

  3. java中三种方法_Java文件I/O的三种方法

    Java文件I/O的三种方法 RandomAccessFile是不属于InputStream和OutputStream类系的.实际上,除了实现DataInput和DataOutput接口之外(Data ...

  4. java反射三种方法_Java基础入门要学哪些 怎么掌握反射和枚举

    Java基础入门要学哪些?怎么掌握反射和枚举?Java是老牌编程语言,是一种可以撰写跨平台应用软件的面向对象的程序设计语言.Java所包含的基础知识点很多,只有掌握了这些知识才能更好地运用,下面就来给 ...

  5. python定时爬虫三种方法_Python爬虫定时计划任务的几种常见方法

    记得以前的Windows任务定时是可以正常使用的,今天试了下,发现不能正常使用了,任务计划总是挂起.接下来记录下Python爬虫定时任务的几种解决方法. 1.方法一.while True 首先最容易的 ...

  6. java线程三种方法,Java基础_线程的使用及创建线程的三种方法

    线程:线程是操作系统能够进行运算调度的最小单位.它被包含在进程之中,是进程中的实际运作单位.一条线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程并行执行不同的任务. 进程:进 ...

  7. Java中三种方法交换两个变量的值

    1.中间变量 是最普也是最广泛使用的交换方式: 这种方法很容易理解,就是创建temp中间变量,m把值给temp,n给m,temp将m的值给n,这样就实现了交换. 2.加减运算 前提只能是数字 因为这种 ...

  8. java while九九乘法表_用java实现三种方法循环输出九九乘法表:

    展开全部 for循环的结构:for(表达式 1:表达式 2:表达式  3) {  循环体  } 表达式 1:一般为赋值表达式:62616964757a686964616fe78988e69d83313 ...

  9. Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法...

    Struts2中action接收参数的三种方法及ModelDriven跟Preparable接口结合JAVA反射机制的灵活用法 www.MyException.Cn   发布于:2012-09-15 ...

最新文章

  1. 人工智能热潮下,我们该如何紧跟科技脚步呢?
  2. 伍迷创意随想集 之 烧菜小帮手
  3. USACO network of school 强连通分量
  4. Mat转CImage
  5. 排序算法-01冒泡排序(Python实现)
  6. 盘点数据科学最流行的29个Python库
  7. 福昕pdf转word免费版下载(附教程)
  8. win10任务栏透明+变窄+免安装
  9. ESXI7.0与6.7官网下载地址
  10. V4L2驱动的移植与应用(二)
  11. MUI调用照片以及裁剪和图库照片上传到服务器【后端部分Flask+MUI】
  12. 更新三转的skills.txt
  13. NosqlBooster For MongoDB解决License问题
  14. 潘多拉路由器搭建php,MT7620A 无线路由 极路由 1S 定制版 OPERWRT 潘多拉 中继 营销...
  15. tomcat 报错 Status 500 - Mapper method ‘xxxxx‘ has an unsupported return type: class xxx
  16. 《自控力》与《学习之道》
  17. 全国大学生英语竞赛考题总结
  18. 优雅地封装和使用 ViewBinding,该替代 Kotlin synthetic 和 ButterKnife 了
  19. ogre1.9环境搭建
  20. 直流电机,传递函数,模糊控制pid算法,matlab代码

热门文章

  1. R语言数据处理——基于tidyverse (一)
  2. 第十六周 项目1 验证算法 堆排序
  3. easyx创建窗口及原理
  4. 永不停息的阿拉伯数字手势时钟app
  5. 国内ip地址 透明代理
  6. 华为meit30有鸿蒙,华为meit30拍星星可以拍清楚吗?_科技数码通
  7. 山西农信社计算机知识,山西农村信用社考试:计算机知识知识点(二)
  8. AskyBlock插件配置教程
  9. SpringBoot 整合 数据库连接池(Druid、HicariCP、C3P0等等)
  10. excel表格如何添加删除线