java 抓取网页_JAVA使用爬虫抓取网站网页内容的方法

2023-10-28

本文实例讲述了JAVA使用爬虫抓取网站网页内容的方法。分享给大家供大家参考。具体如下:

最近在用JAVA研究下爬网技术,呵呵,入了个门,把自己的心得和大家分享下

以下提供二种方法,一种是用apache提供的包.另一种是用JAVA自带的.

代码如下:

// 第一种方法

//这种方法是用apache提供的包,简单方便

//但是要用到以下包:commons-codec-1.4.jar

// commons-httpclient-3.1.jar

// commons-logging-1.0.4.jar

public static String createhttpClient(String url, String param) {

HttpClient client = new HttpClient();

String response = null;

String keyword = null;

PostMethod postMethod = new PostMethod(url);

// try {

// if (param != null)

// keyword = new String(param.getBytes("gb2312"), "ISO-8859-1");

// } catch (UnsupportedEncodingException e1) {

// // TODO Auto-generated catch block

// e1.printStackTrace();

// }

// NameValuePair[] data = { new NameValuePair("keyword", keyword) };

// // 将表单的值放入postMethod中

// postMethod.setRequestBody(data);

// 以上部分是带参数抓取,我自己把它注销了.大家可以把注销消掉研究下

try {

int statusCode = client.executeMethod(postMethod);

response = new String(postMethod.getResponseBodyAsString()

.getBytes("ISO-8859-1"), "gb2312");

//这里要注意下 gb2312要和你抓取网页的编码要一样

String p = response.replaceAll("//&[a-zA-Z]{1,10};", "")

.replaceAll("]*>", "");//去掉网页中带有html语言的标签

System.out.println(p);

} catch (Exception e) {

e.printStackTrace();

}

return response;

}

// 第二种方法

// 这种方法是JAVA自带的URL来抓取网站内容

public String getPageContent(String strUrl, String strPostRequest,

int maxLength) {

// 读取结果网页

StringBuffer buffer = new StringBuffer();

System.setProperty("sun.net.client.defaultConnectTimeout", "5000");

System.setProperty("sun.net.client.defaultReadTimeout", "5000");

try {

URL newUrl = new URL(strUrl);

HttpURLConnection hConnect = (HttpURLConnection) newUrl

.openConnection();

// POST方式的额外数据

if (strPostRequest.length() > 0) {

hConnect.setDoOutput(true);

OutputStreamWriter out = new OutputStreamWriter(hConnect

.getOutputStream());

out.write(strPostRequest);

out.flush();

out.close();

}

// 读取内容

BufferedReader rd = new BufferedReader(new InputStreamReader(

hConnect.getInputStream()));

int ch;

for (int length = 0; (ch = rd.read()) > -1

&& (maxLength <= 0 || length < maxLength); length++)

buffer.append((char) ch);

String s = buffer.toString();

s.replaceAll("//&[a-zA-Z]{1,10};", "").replaceAll("]*>", "");

System.out.println(s);

rd.close();

hConnect.disconnect();

return buffer.toString().trim();

} catch (Exception e) {

// return "错误:读取网页失败!";

//

return null;

}

}

然后写个测试类:

public static void main(String[] args) {

String url = "https://www.jb51.net";

String keyword = "脚本之家";

createhttpClient p = new createhttpClient();

String response = p.createhttpClient(url, keyword);

// 第一种方法

// p.getPageContent(url, "post", 100500);//第二种方法

}

呵呵,看看控制台吧,是不是把网页的内容获取了

希望本文所述对大家的java程序设计有所帮助。

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

java 抓取网页_JAVA使用爬虫抓取网站网页内容的方法 的相关文章

  • C++_自定义函数实现返回两个数中的较小数

    本文仅仅发布在CSDN我的博客 点击打开链接 http blog csdn net pythontojava viewmode contents 转载请注明出处 我用的IDE是VS2013 代码在vc 6 0不能编译 要把int tmain
  • python怎样用stata_Python 读取stata文件

    利用Python读取stata文件 并防止中文乱码 其中 load large dta用于读取stata文件 decode str用于编译中文字符串 import pandas as pd import numpy as np import
  • Java反射详解

    目录 反射是框架设计的灵魂 一 反射的概述 反射就是把java类中的各种成分映射成一个个的Java对象 二 反射机制有什么用 三 Java反射机制的优点 四 反射机制相关的重要的类有哪些 编辑 Class类 接下来 我们已Student实体
  • 硬件系统工程师宝典(40)-----Datasheet要全都看完吗?

    各位同学大家好 欢迎继续做客电子工程学习圈 今天我们继续来讲这本书 硬件系统工程师宝典 上篇我们介绍了ESD对电路的影响以及ESD器件的选型 今天我们来讲一讲Datasheet要怎么看 我们在进行IC原理图设计时 经常需要查看IC的Data
  • qt通过Lable设置背景图片

    在lable中可以添加resoures中包含的图片 设置图片 QPixmap pix new QPixmap 1 jpg 添加resources中的文件 QSize sz ui gt background lable gt size ui
  • 成年人的自由,从学会拒绝开始

    一位读者问我 润总 我总是不好意思 也不敢 拒绝别人 常常被迫扭曲自己 做一些不情愿的事 怎么办 怎么才能得体地拒绝别人呢 今天我想告诉你一个拒绝别人的心法 坚定而柔软 1 什么叫做坚定而柔软 坚定 代表不左右动摇 不模棱两可 但是坚定 并
  • mnist数据集介绍

    参考博客 https blog csdn net tostq article details 51786265 参考代码 https github com tostq DeepLearningC tree master CNN MINST数
  • 搭建符号服务器 (Windows)

    开网站 安装IIS 添加一个网站 配置好物理路径 添加MIME 扩展名为 类型为 application octet stream 即允许下载所有文件 好了 就那么简单 把pdb发布到网站中 我这里建立了一个名叫 test 的网站 物理路径
  • Human3.6m数据集

    最近用到了Human3 6数据集 整理一下链接 1 原数据链接 http vision imar ro human3 6m 需要注册申请 时间可能很长 也很大 看别的帖子说很长 没试 好像是cdf文件 2 3d pose baseline
  • java中构造器(Constructor)

    大部分内容转自 http tech it168 com j 2006 05 18 200605181021879 shtml 构造器是一个创建对象时被自动调用的特殊方法 为的是初始化 构造器的名称应与类的名称一致 当创建一个个对象时 系统会
  • 量化投资学习-12:股市的量化交易是情绪化交易的克星之一

    江湖传言 散户的情绪化追涨杀跌交易是散户赚不到钱 甚至是小亏的根本原因 散户的不懂得止损的情绪化操作是散户深套 大亏的根本原因 终止 散户亏损的内因是 散户的自身的非量化的 非理性的 情绪化交易 量化交易是散户的救星 一直以来 认为庄家是散
  • Python实现ip段地址

    author skate time 2014 10 13 Python实现ip段地址的打印 如10 10 10 1 10 10 10 10 usr bin env python encoding UTF 8 Author Skate def
  • VMtools的安装

    基本概述 1 可以实现命令在Windows与centos上复制粘贴 2 可以实现Windows与centos上文件夹共享 VMtools的安装步骤 1 进入Centos系统 2 点击VM菜单的安装VMware Tools 因为我已经安装了
  • 一文彻底理解DMA

    DMA Direct Memory Acess 1 什么是DMA 有什么作用 2 DMA传输过程简述 2 1 DMA普通传输过程 2 2 DMA指针递增传输过程 2 3 DMA循环传输过程 2 4 DMA双缓冲区传输过程 3 STM32F4
  • 使用arraycopy方法复制数组

    6 使用arraycopy方法复制数组 package array public class array public static void main String args TODO Auto generated method stub
  • 目标检测中Anchor如何映射到原图

    利用深度学习进行目标检测一般需要经过较深的卷积神经网络 而卷积本身就有位置不变性 会将原图中的某块区域映射为特征图上的某个点 anchor和特征图的关系 既然anchor是特征图对应像素点在原图的某个区域 那么是怎样的对应关系呢 现在假设某
  • 下载R包遇到的问题用这个方法解决了!!!

    之前我一直以为一个镜像源能适用于下载所有的R包 然而最近两天在线下载R包没有一次成功的 也改了很多次镜像源 然而每次都报错 unable to access index for repository http streaming stat
  • GD32替代STM32使用Cube MX的HAL库开发

    目录 一 STM32F103与GD32F103 差别比较 二 GD32使用CubeMX配置 1 配置单片机型号 2 晶振配置 3 其它配置 三 GD32使用Keil配置 1 更改型号为GD32芯片 2 编译下载 四 例程下载链接 一 STM

随机推荐

  • C++之智能指针auto_ptr

    当你在读这篇文章的时候 应该都有这样一个疑问 那就是为什么要使用智能指针 我们先看这样一个示例 include
  • RC4(原理+代码+调用openssl库+报错分析)

    目录 一 原理 1 流密码的基本思想 2 RC4流密码算法的原理 1 初始化数据表S和T 2 初始置换数据表S 密钥调度算法 3 生成密钥流 伪随机数生成算法 二 代码实现 三 调用openssl库实现RC4 1 代码实现 2 调用open
  • 结合Wireshark捕获分组深入理解DNS协议

    一 概述 1 1 DNS 识别主机有两种方式 主机名 IP地址 前者便于记忆 如www yahoo com 但路由器很难处理 主机名长度不定 后者定长 有层次结构 便于路由器处理 但难以记忆 折中的办法就是建立IP地址与主机名间的映射 这就
  • vue3的文档

    四 Vue 3 1 TypeScript 1 动态类型的问题 前面我们讲过 js 属于动态类型语言 例如 function test obj obj 可能只是个字符串 test hello world obj 也有可能是个函数 test g
  • SLAM综述阅读笔记七:Visual and Visual-Inertial SLAM: State of the Art, Classification,and Experimental 2021

    Visual and Visual Inertial SLAM State of the Art Classification and Experimental Benchmarking 作者 Myriam Servi res Val ri
  • IP核的使用之ROM(Vivado)

    存储类IP核 ROM 文章目录 存储类IP核 ROM 一 引言 二 ROM IP核及相关内容扫盲 1 ROM简介 2 ROM的初始化文件介绍 3 分布式ROM和块ROM简介 4 单端口ROM和双端口ROM简介 三 分布式ROM IP核的创建
  • 高斯混合模型(GMM)先验的推断

    GMM先验的优化方程 假设图像降质模型为 Y A X N Y AX N Y AX N 我们希望恢复
  • 腾讯云SA3服务器AMD处理器CPU网络带宽性能详解

    腾讯云AMD服务器SA3实例CPU采用2 55GHz主频的AMD EPYCTM Milan处理器 睿频3 5GHz 搭载最新一代八通道DDR4 内存计算性能稳定 默认网络优化 最高内网收发能力达1900万pps 最高内网带宽可支持100Gb
  • 二极管常见分类及使用

    1 肖特基二极管 1 1概念 肖特基二极管 SBD 不是利用P型半导体与N型半导体接触形成PN结原理制作的 而是利用金属与半导体接触形成的金属 半导体结 肖特基势垒 原理制作的 因此 SBD也称为金属 半导体 接触 二极管或表面势垒二极管
  • 获取上个月的起止时间

    function 日期初始化 alert getStartDate alert getEndDate 获取开始时间 function getStartDate var date new Date var year date getFullY
  • Transform 基础知识

    Transform 变换 是场景中最常打交道的类 用于控制物体的位移 旋转 缩放等功能 Transform Class inherits from Component IEnumerable Position rotation and sc
  • HJ41 称砝码

    题目 HJ41 称砝码 题解 import java util 注意类名必须为 Main 不要有任何 package xxx 信息 public class Main public static void main String args
  • RBAC详解

    RBAC详解 1 RBAC模型的工作原理 2 RBAC模型的实现 3 总结 RBAC模型是一种基于角色的访问控制模型 它定义了一些规则和机制来控制用户对系统资源的访问 在本文中 我们将详细讨论RBAC模型的工作原理 并使用一个数据库示例来说
  • 剑指Offer - 面试题49:丑数

    题目 我们把只包含因子2 3 5的数称为丑数 Ugly Number 求按照从小到大的顺序的第1500个丑数 例如 6 8都是丑数 但14不是 因为它包含因子7 习惯上我们把1当作第一个丑数 分析 暴力法 从1开始每个数字都判断 若是丑数
  • 代码实现 —— 基于 STM32 的可见光通信系统课程设计

    目前课设已完成 2m距离 传输10000个连续数字 每个数字两字节大小 即总共20000个字节160000bit 用时7s 大约2 3万bit s 即22 4kB s 误码率为0 视频演示链接 另外 自己写了一个基于QT的串口上位机 结合U
  • 前端面试题汇总(vue+html基础)最新最全

    一 HTML基础部分 1 什么是盒子模型 重要 在网页中 一个元素占有空间的大小由几个部分构成 其中包括元素的内容 content 元素的内边距 padding 元素的边框 border 元素的外边距 margin 四个部分 这四个部分占有
  • FDbus

    文章目录 介绍 背景 特点 FDBus 中间件模型 FDBus 寻址和组网 Server地址 Server命名和地址分配 name server使用如下规则分配server地址 多主机组网 host server的工作原理 client 与
  • 时序分解

    时序分解 Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 目录 时序分解 Matlab实现CEEMD互补集合经验模态分解时间序列信号分解 效果一览 基本介绍 程序设计 参考资料 效果一览 基本介绍 Matlab实现CEEMD
  • Spring源码之事件监听机制(下)

    文章目录 前言 一 手写事件监听机制框架 1 准备 2 事件监听接口 3 事件管理器 4 事件发布器 5 需求 6 编码 二 观察者模式 1 概述 2 UML图 3 Coding验证 小结 前言 这篇文章接的是上篇文章Spring源码之事件
  • java 抓取网页_JAVA使用爬虫抓取网站网页内容的方法

    本文实例讲述了JAVA使用爬虫抓取网站网页内容的方法 分享给大家供大家参考 具体如下 最近在用JAVA研究下爬网技术 呵呵 入了个门 把自己的心得和大家分享下 以下提供二种方法 一种是用apache提供的包 另一种是用JAVA自带的 代码如