admin管理员组

文章数量:1794759

如何用java获取网页源代码

如何用java获取网页源代码

如何用java爬取网页源代码

分为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("www.bilibili/","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