如何用java爬取网页源代码

分为3个步骤:

  1. 分析实现方式
  2. 代码展示
  3. 结果展示

1、分析

以b站为例 抓取b站的源代码是这样的

那么我可以用URL对象获取HttpURLConnection对象

HttpURLConnection对象:它继承自URLConnection,可用于向指定网站发送GET请求、POST请求。

调用URL中的 openConnection()再通过强转获得连接对象HttpURLConnection

HttpURLConnection 向网页发送请求然后我们读取网页的源代码

在我们发送请求的时候可能有些网址会报一个错误:Server returned HTTP response code: 403 for URL

这个错误的意思大概就是服务器的安全设置不接受Java程序作为客户端访问

这个时候我们需要进行安全设置:

//这个方法是HttpURLConnection中的方法  参数内容具体什么意思我也不知道,反正就是设置安全性
setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");

既然说到读取 那么就需要InputStream输入流 在HttpURLConnection有个 getInputStream()方法 可以获取我们的输入流对象

获取到了输入流就等于是已经拿到了源码

下面展示代码 我会把捕获到的源码写入到txt文件中

2、代码展示

main方法

public static void main(String[] args) throws Exception{getURLData("https://www.bilibili.com/","utf-8");
}

getURLData是我自己定义的方法 我是在方法中实现获取源码

getURLData 方法

static void getURLData(String Url, String coding) throws Exception {//创建URL对象  参数设置需要爬取的网址 也就是我们方法传过来的参数URL url = new URL(Url);//得到一个HttpURLConnection 对象HttpURLConnection huc = (HttpURLConnection) url.openConnection();//防止出现Server returned HTTP response code: 403 for URL 的错误//也就是服务器的安全设置不接受Java程序作为客户端访问  所以我们进行安全设置huc.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");//通过HttpURLConnection获得输入流对象InputStream is = huc.getInputStream();//使用缓冲字符输入流获取源码  设置编码BufferedReader r = new BufferedReader(new InputStreamReader(is,coding));String line;//写入文件中BufferedWriter bw = new BufferedWriter(new FileWriter("E:\\1、idea项目\\算法和数据结构\\Demo\\src\\test\\_爬网址源码\\1.txt"));//readLine()一次读一行 while ((line = r.readLine()) != null){bw.write(line);//读完一行就换行bw.newLine();//清空缓冲区bw.flush();}//关闭资源bw.close();r.close();is.close();
}

3、结果展示

这样我们就获得了b站的源代码,如果想要只爬取自己想要的数据
那么对数据(字符串)进行一个过滤就行了

学会了的点个赞吧~

如何用java获取网页源代码相关推荐

  1. java获取页面标签_java获取网页源代码后,提取标签内容……

    java获取网页源代码后,提取标签内容-- 关注:245  答案:2  mip版 解决时间 2021-02-01 09:11 提问者咏bù琂败 2021-01-31 13:49 import java ...

  2. c#正则表达式取出数据库中带html标签的内容,C#用正则表达式 获取网页源代码标签的属性或值...

    1.有url获取到网页源代码: using System.Web; using System.IO; using System.Net; private void GetHtmlinfo(string ...

  3. 获取网页源代码的最简单办法

    获取网页源代码的最简单办法,就是利用 WinInet 单元中的函数: Code uses WinInet; function GetWebPage(const Url: string):string; ...

  4. c#利用WebClient和WebRequest获取网页源代码的比较

    前几天举例分析了用asp+xmlhttp获取网页源代码的方法,但c#中一般是可以利用WebClient类和WebRequest类获取网页源代码.下面分别说明这两种方法的实现. WebClient类获取 ...

  5. js技术要点---JS 获取网页源代码

    JS 获取网页源代码 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html& ...

  6. c# 获取html代码怎么写,C#获取网页源代码的方法

    本文实例讲述了C#获取网页源代码的方法.分享给大家供大家参考.具体如下: public string GetPageHTML(string url) { try { HttpWebRequest wr ...

  7. 获取网页源代码 python_python 获取网页源代码

    import re #正则表达式模块 import urllib.request import time #时间模块 import string #字符串模块 def getHtml(url):f=u ...

  8. c#获取网页源代码的5种方式

    全栈工程师开发手册 (作者:栾鹏) c#教程全解 c#获取网页源代码的5种方式,发送请求获取响应数据流,按照不同的编码转换为响应字符串 测试代码 static void Main() {string ...

  9. python selenium 获取网页源代码

    获取网页源代码: 引入组件:[from selenium import webdriver]. [from selenium.webdriver.chrome.options import Optio ...

  10. 用Selenium库获取网页源代码:新浪财经股票信息

    1.访问及关闭页面 通过以下代码即可访问网站,相当于模拟人打开了一个浏览器,然后访问指定网址. from selenium import webdriver browser = webdriver.C ...

最新文章

  1. java for循环迭代_JAVA中的for-each循环与迭代
  2. 双作用叶片泵图形符号_液压气动图形符号及识别
  3. Thymeleaf语法变量
  4. 背水一战 Windows 10 (20) - 绑定: DataContextChanged, UpdateSourceTrigger, 对绑定的数据做自定义转换...
  5. SpringBoot入门到精通_第7篇 _必知必会总结
  6. Java NIO学习篇之缓冲区ByteBuffer详解
  7. xboxones手柄驱动_微软Xbox One S全数字版再次发售,1043元
  8. html网页音乐手机播放,网页添加背景音乐代码,支持手机端的html5代码播放器
  9. 巨量引擎api对接 php,巨量引擎Marketing API 现已开放多种创意能力接口
  10. clickHouse 使用常见问题踩坑
  11. 5款考试学习的高效率APP,让你轻松学习一整天!
  12. 服务器 z盘 映射,小脚本:在终端上映射网络驱动器Z盘
  13. deepin20.3 的问题
  14. Microsoft edge升级之后收藏夹内容丢失_再见了,老Edge,再见了,Microsoft Edge
  15. oracle存储过程报错:ORA-06550: wrong number or types of arguments in call to
  16. 大数据告诉你:2018年该学习什么技术
  17. 会声会影x4素材_会声会影2020旗舰版Corel VideoStudio Ultimate 2020中文版
  18. Android 9格锁屏
  19. 超实用,12个免费雷达数据源
  20. 使用pygame开发一个弹幕射击游戏(一)

热门文章

  1. AngularJS总结
  2. 世界首富马斯克突然吟了一首中文诗
  3. 计算机专业参考文献 文库,计算机类专业毕业论文参考文献大全.docx
  4. Nuvoton_N76E003使用教程
  5. 使用nuvoton976DK61Y BSP运行自己的demon
  6. 山寨芯片大鳄终于来了MTK6577 A9双核全功能通讯平板(2012年芯片,低端以A9双核为代表)
  7. 《伯克毕生发展心理学2》
  8. node.js基于vue框架潮牌官网设计与实现毕业设计源码010955
  9. [分享]下载电影文件英文标识的含义
  10. MAtlab wavefront,这是张小飞的阵列信号的全部MATLAB代码 传统的高分辨波达方向(DOA)估计算法中 - 下载 - 搜珍网...