java爬虫,提供链接直接爬取网页代码

2023-11-06

其实我只想要爬到整个网页的源代码的就好.通过java的一个包jsoup,就可以直接爬取了,后面有下载源代码(含jsoup包)的链接.

输入:网页链接

输出:网页源代码

代码比较简单,解析都在代码中:

import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;

import java.io.FileOutputStream;

public class Main {

    public static void main(String[] args) {

        //在这里输入所有想要爬取的网址
        String[] urlPath = new String[]{
                "http://daily.zhihu.com/"
        };

        for (String anUrlPath : urlPath) {
            try {
                Document document = Jsoup.connect(anUrlPath)
                        .userAgent("Mozilla/4.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)")
                        .get();
                //此时document.html()就是全部网页信息,如果想要让程序酷炫一些,可以把这些内容打印在控制台

                String pathname = anUrlPath;
                //将url作为文件名,下面是消除不能在文件名中出现的非法字符
                pathname = pathname.replace("http://", "");
                pathname = pathname.replace('/', ' ');
                pathname = pathname.replace('\\', ' ');
                pathname = pathname.replace(':', ' ');
                pathname = pathname.replace('<', ' ');
                pathname = pathname.replace('>', ' ');
                pathname = pathname.replace('|', ' ');
                pathname = pathname.replace(" ", "");
                pathname = pathname + ".txt";

                //将内容保存到本地
                FileOutputStream os = new FileOutputStream(pathname, true);
                //在文件的第一行写入爬取的网页的url,方便以后用程序自动处理时识别url
                os.write(anUrlPath.getBytes("utf-8"));
                os.write("\r\n".getBytes());
                os.write(document.html().getBytes("utf-8"));
            } catch (Exception e) {
                //如果出现比如 DNS解析失败,或是拒绝访问等报错,将它们写在exception.txt文件中,并且保证程序继续运行
                try {
                    FileOutputStream os = new FileOutputStream("exception.txt", true);
                    os.write(e.toString().getBytes("utf-8"));
                    os.write("\r\n".getBytes());
                    System.out.println(e);
                } catch (Exception e1) {
                    System.out.println(e1);
                }
            }
        }
    }
}

只需要在urlPath中输入想要爬取的网页链接,就可以直接运行了.我这里就跟风,用"知乎日报"的网址做栗子了.

之后在当前目录中会出现一个文件来保存网页源代码:daily.zhihu.com.txt,如果出现任何报错,都不会使程序中断,而且会将报错的信息保存在一个文件:exception.txt中.


得到了网站的源代码,就可以通过自定义的方式来提取网页中的信息了,之后如果有时间我还会写一个爬取整站代码的博客,到时候输入多个链接,保存成文件夹,把它的整站代码爬下来.

如果有兴趣,可以下载我的源码,连jsoup的包都包含在里面了:http://download.csdn.net/download/weixin_35757704/10013327

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

java爬虫,提供链接直接爬取网页代码 的相关文章

随机推荐

  • Qt 关闭窗口时循环依旧运行的解决办法

    在Qt中 经常碰到关闭窗口之后 程序中的循环依旧运行 查资料知道跟线程和进程有关系 比较麻烦 以后再慢慢看线程和进程知识 今天想到一个比较偷懒的方法 具体方法如下 部分代码 1 在类中设立判断循环的标志 isLooopFlag 以及槽函数s
  • 学习笔记-正则表达式

    https www runoob com regexp regexp tutorial html 正则表达式re Regular Expression 是一种文本模式 包括普通字符 例如 a 到 z 之间的字母 和特殊字符 称为 元字符 可
  • CSerialPort教程4.3.x (1) - CSerialPort项目简介

    CSerialPort教程4 3 x 1 CSerialPort项目简介 前言 CSerialPort项目是一个基于C C 的轻量级开源跨平台串口类库 可以轻松实现跨平台多操作系统的串口读写 同时还支持C Java Python Node
  • npm yarn pnpm命令

    命令对比 命令 npm yarn pnpm 安装 install add add 安装到dependencies save 默认 默认 安装到devDependencies D save dev D dev D save dev 安装到op
  • OpenCV-Python快速入门(十四):模板匹配

    OpenCV Python快速入门 十四 模板匹配 前言 前提条件 实验环境 模板匹配 cv2 matchTemplate 匹配单个结果 匹配多个结果 参考文献 前言 本文是个人快速入门OpenCV Python的电子笔记 由于水平有限 难
  • 【C语言】C语言 atoi 函数解析

    个人主页 简 料 所属专栏 C语言 个人社区 越努力越幸运社区 简 介 简料简料 简单有料 在校大学生一枚 专注C C GO的干货分享 立志成为您的好帮手 C C 学习路线 点击解锁 C语言 初阶数据结构与算法 C 高阶数据结构 Linux
  • 万劫不复之地-云原生可观测性的几大误区

    传统监控厂商正把可观测性引入万劫不复之地 可观测性是当前讨论非常多的话题 这个理念由来已久 却在最近开始流行 在20世纪60年代 该理念首次由Rudolf E Kalman在其论文中提出 论文题目是 on a general theory
  • Python中range()函数的用法

    先列几个range 函数的几个用法 函数原型 range start end scan 参数含义 start 计数从start开始 默认是从0开始 例如range 5 等价于range 0 5 end 技术到end结束 但不包括end 例如
  • 配置环境变量后,mysql依旧提示“'mysql' 不是内部或外部命令,也不是可运行的程序或批处理文件”

    在启动菜单搜索 cmd 搜索到后不要点击运行 右击选择以管理员的身份运行 之后输入mysql u 用户名 p 密码 就可以了 在此输入 cmd 找到 命令提示符 右击选择 以管理员的身份运行 之后正常操作就可以了 ps 此外如果之前操作没问
  • Docker安装使用记录

    Docker使用 Docker简介 Docker 架构 Docker安装 Docker CE 镜像源站 使用官方安装脚本自动安装 仅适用于公网环境 手动安装帮助 阿里云ECS可以通过内网安装 见注释部分内容 Ubuntu 14 04 16
  • Linux笔记:命令进阶使用相关功能

    文章目录 目的 通配符 转义符 流程控制 管道符 重定向 环境变量 总结 目的 使用linux时用户可以通过一个又一个的命令来完成各种操作 除了基础的各个命令外linux还提供了各种便利的功能来协调使用这些命令 这些功能让用户在使用linu
  • jenkins 持续集成/项目部署

    前置操作可查阅 docker 安装 jenkins https xijia blog csdn net article details 127021367 spm 1001 2014 3001 5502 win安装及 jenkins 前置配
  • C5.0决策树算法及性能提升

    C5 0算法是基于C4 5开发的新版本 它能适用于很多类型的问题 同神经网络 支持向量机等复杂算法相比 它几乎可以表现地一样优秀 并且更容易理解和部署 这里我们将用UCI机器学习网站http archive ics uci edu ml i
  • GPIO使用教程(学习笔记)

    目录 前言 一 GPIO简介 1 1GPIO框图讲解 二 需驱动的寄存器 2 1时钟 2 2总线 2 3时钟配置 2 4寄存器配置 三 编程环境搭建 3 1完整程序 四 小结 前言 本文主要讲解如何驱动GPIO外设的相应寄存器搭建GPIO的
  • MyBatis 学习笔记:Java 中的数据持久化框架

    MyBatis 学习笔记 Java 中的数据持久化框架 数据持久化是大多数应用程序的关键需求之一 在 Java 开发中 MyBatis 是一个流行的数据持久化框架 它提供了一种简单而强大的方式来管理数据库访问 本文将介绍 MyBatis 的
  • 出门旅行懂链改这些问题都好解决

    每到旅游热潮结束后 各大平台都会纷纷晒出出游 成绩单 国内很多人都是 报复式出游 各大景区都是人山人海 有些人旅游是为了修身养性 放松身心 有些人是为了观赏大自然风光 享受一场视觉盛宴 有些人是为了探索未知事物 追求一种差异化 个性化的旅游
  • 环形队列设计思路

    环形队列设计思路 一 数据结构 数据存储在一段连续的内存空间 通过写位置 读位置来控制数据的输入输出 二 数据操作 1 判断空逻辑 写位置 读位置 2 判断满逻辑 写位置 1 MAX SIZE 读位置 3 写数据逻辑 判断数据不满 在当前写
  • GPG error: http://debian.cn99.com testing Release: Unknown error executing gpgv

    mail apt get updateGet 1 http debian cn99 com testing Release gpg 189B Hit http debian cn99 com testing ReleaseErr http
  • Servlet上传文件

    一 核心方法 1 HttpServletRequest类相关方法 方法 描述 Part getPart String name 获取请求中给定name的文件 Collection
  • java爬虫,提供链接直接爬取网页代码

    其实我只想要爬到整个网页的源代码的就好 通过java的一个包jsoup 就可以直接爬取了 后面有下载源代码 含jsoup包 的链接 输入 网页链接 输出 网页源代码 代码比较简单 解析都在代码中 import org jsoup Jsoup