html取出单元格中的数值_简单爬取html页面的表格中的数据

2023-11-11

关于爬虫方面本人小白一个,通过无所不能的度娘,从中汲取营养,得到一个简单的能用的例子,在这分享一下,供大家一起汲取.

首先说一下,你想从一个页面中获取到你想要的数据,首先你要先得到这个页面.然后把获取到的页面

使用Jsoup解析成 Document对象 之后进行一系列的操作.文字功底有限,直接上代码:

import org.jsoup.Jsoup;

import org.jsoup.nodes.Document;

import org.jsoup.select.Elements;

import java.io.*;

import java.net.URL;

import java.net.URLConnection;

import java.util.ArrayList;

import java.util.List;

public class test {

public static void main(String[] args) throws IOException {

System.out.println("开始");

test d=new test();

String str=d.getHtml();

d.readHtml(str);

System.out.println("结束");

}

//这就是通过url获取整个页面 返回页面的字符串

public String getHtml() throws IOException {

StringBuffer buffer = new StringBuffer();

//连接的url

String urlpath="http://www.dyhjw.com/dyhjw/etf.html";

URL url = new URL(urlpath);

URLConnection conn = url.openConnection();

InputStream in =conn.getInputStream();

//字节流-》字符流 InputStreamReader

InputStreamReader reader = new InputStreamReader(in,"utf-8");

//按行 读出来

BufferedReader breader = new BufferedReader(reader);

//读取数据

String line = "";

while((line= breader.readLine())!=null)

{

buffer.append(line);

}

return buffer+"";

}

//读取页面的字符串

public void readHtml(String html){

//使用Jsoup解析html 成Document对象

Document document = Jsoup.parse(html);

//获取页面中table 的tr部分

Elements trs=document.select("table").select("tr");

List list=new ArrayList<>();

//输出的位置

File file =new File("d://xxxx.txt");

FileWriter fWriter= null;

if(!file.exists()) {

try {

file.createNewFile();

fWriter= new FileWriter(file);

fWriter.append("日期(北京)\t净持仓量(吨)\t总价值(美元)\t增减(吨)\t影响(金银)\r\n");

for (int i = 1; i < trs.size(); i++) {

Elements tds=trs.get(i).select("td");

Object[]obj={

tds.get(0).text(),

Double.parseDouble(tds.get(1).text()),

Double.parseDouble(tds.get(2).text()),

tds.get(3).text(),

tds.get(4).text()

};

list.add(obj);

String txt = "";

for (int j = 0; j < tds.size(); j++) {

if (txt == "") {

txt = tds.get(j).text();

}else {

txt = txt + "\t"+tds.get(j).text();

}

}

fWriter.append( txt+"\r\n");

fWriter.flush();

}

}catch (IOException e) {

e.printStackTrace();

}finally {

try {

fWriter.close();

} catch (IOException e) {

e.printStackTrace();

}

}

}

}

}

每天进步一点点,大家共勉

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

html取出单元格中的数值_简单爬取html页面的表格中的数据 的相关文章

  • 区块链包含术语概念【27术语整理汇总】

    问题导读1 区块链包含哪些概念 2 什么是工作量证明 3 什么是共识机制 4 你认为哪些概念比较重要 区块链现在很多人都在学习 无论是看书籍 还是看视频 我们有时候并不是明白讲的是什么 比如工作量证明 共识机制等等 所以这里补充下概念 由于
  • 导读:生活中的设计模式——启程之前,请不要错过我

    为什么叫设计模式 什么是设计模式 设计模式与生活有什么联系 为什么要学设计模式 如何进行学习 为什么选择 Python 弥补市场空缺 大势所趋 Python 已然成风 简单的 Python 基础 Python 的特点 基本语法 常用容器 L
  • zabbix 监控硬件

    之前介绍的zabbix监控都是属于监控服务方面 现在介绍一下zabbix监控服务器硬件信息的 本文出自 吟 技术交流 博客http dl528888 blog 51cto com 2382721 1403893 之前介绍的zabbix监控都
  • POJ-2676 Sudoku(简单数独-dfs深搜)

    Sudoku Time Limit 2000MS Memory Limit 65536K 题目链接http poj org problem id 2676 Description Sudoku is a very simple task A
  • Ubuntu: Docker安装与操作

    在进行docker安装前 我们首先得有以下工具 xshell FileZilla Client Xshell下载安装教程 FileZilla Client下载安装教程 如果你的Ubuntu是纯净的 也就是说刚下好并且刚用虚拟机装好的 你得先
  • 渗透测试用工具(三)layer子域名挖掘机

    一 为什么要搜集子域名 收集网站信息的时候子域名收集是非常重要的一部分 通常在一个主站进行防护完善的情况下找不到渗透点的话 我们可以考虑在子站点进行渗透爆破 通过旁站C段进行渗透 子域名收集是渗透测试中 前期信息收集必不可少的一个阶段 域名
  • gstreamer简介--TX2打开摄像头失败解决

    参考链接 https blog csdn net tx3344 article details 7497434 https blog csdn net Tosonw article details 104199195 这两篇都是gstrea
  • 将IdeaVim与IntelliJ一起使用

    我已经成为VIM用户几年了 并且还在IntelliJ中使用IdeaVim插件 以下配置和功能对我有很大帮助 您可以在 ideavimrc文件中配置与常规VIM中相同的键 ideavimrc 设置idearefactormode keep可以
  • “QtCore/qglobal.h”: No such file or directory错误的解决

    QtCore qglobal h No such file or directory错误的解决
  • java8 StreamAPI串行流和并行流

    串行流与并行流 创建一个1 10的list List
  • 信息泄露-小白初识

    生活在网络化 信息化的今天 我们时不时的会听到某某国家 某某网站泄露了多少亿的用户数据 这些数据包括个人的姓名 联系电话 家庭住址 甚至更恶劣的包括个人银行卡账号 宾馆以及网购记录等 如此高速的网络让我们享受到了便利 恐怖的数据泄露事件却另
  • 大数据数据倾斜问题

    数据倾斜 数据倾斜是我们在处理大数据量问题时绕不过去的问题 也是在面试中几乎必问的考点 正常的数据分布理论上都是倾斜的 就是我们所说的 二八原理 80 的财富集中在20 的人手中 80 的用户只使用20 的功能 20 的用户贡献了80 的访
  • SVN 报错 sqlite[S11]: database disk image is malformed

    http blog csdn net yeshencat article details 73741123 蛋碎的开机一会儿 想着把第一件事儿就是更新svn svn正更新 发现鼠标移动不了 还以为电脑USB端口供电不足 结果特么电脑死机 再
  • 前端解决多个跨域问题

    前端解决多个跨域问题 前言 虽然一直是前后端分离 但是没了解过跨域问题 直接是vue config js中的内容直接搬过来改改 但是后来调用了下百度语音拟合的api接口发现 有跨域问题 这个肯定不能动用后端了就查了下资料改了下proty代理
  • GDB调试技巧

    工具程序gdb是GNU调试器 为了能调试程序 编译时必须指定GCC的 g选项将源码与可执行代码联系起来 将程序载入调试器 fibonacci c int current int next int nextnext void setstart
  • idea运行项目报错Cannot run program “C:\Program Files\Java\jdk1.8.0_121\bin\java.exe......解决办法

    在环境变量都配置完好的情况下 基本就是idea的配置除了问题可以检查以下几点 1 SDKs检查 2 路径检查 3 项目配置检查
  • 利用C#实现条形图、饼图的绘制(二)

    继前一篇文章提到关于使用C 绘制条形图的思路之后 这里接着介绍绘制饼图的思路 本篇文章所涉及的源代码是在前面的基础上完成的 在本文的最后 将会提供本实例的完整代码下载地址 有兴趣的朋友可以下载 言归正传 开始介绍饼图的绘制 其实 饼图的绘制
  • js 获取本月、本周、本年年初

    timeSlotChange val let startTime endTime let now new Date 当前日期 var nowDayOfWeek now getDay 今天本周的第几天 var nowDay now getDa
  • apache+mod_perl防盗链

    原文地址 http blog csdn net zjl410091917 article details 7288096 写这个帖子完全是无意中搜索modperl应用时候发现了 具体可以参见 http pyh7 spaces live co

随机推荐

  • 51单片机定时器的原理与使用

    定时器是单片机的重要功能模块之一 在检测 控制领域有广泛应用 定时器常用作定时时钟 以实现定时检测 定时响应 定时控制 并且可以产生ms宽的脉冲信号 驱动步进电机 定时和计数的最终功能都是通过计数实现 若计数的事件源是周期固定的脉冲则可实现
  • 使用MyBatisPlus+Spring实现声明式事务

    使用MyBatisPlus Spring实现声明式事务 事务介绍 数据库的事务 Transaction 是一种机制 一个操作序列 包含了一组数据库操作命令 事务把所有的命令作为一个整体一起向系统提交或撤销操作请求 即这一组数据库命令要么都执
  • 安装mongo以及相关扩展

    背景 看到了一个nodejs的对mongo操作的课程 于是想学一下 1 于是打算先在自己的vps上安装一个mongodb https docs mongodb org manual tutorial install mongodb on l
  • socket通信原理

    参考博客 https www cnblogs com wangcq p 3520400 html
  • python导入csv文件画折线图

    导包 import matplotlib pyplot as plt import pandas as pd import time data pd read csv filename 导入csv文件 y data number T val
  • 软件开发是一门艺术还是工程

    软件开发是一门艺术 艺术是没有具体形象的 一名艺术家必须要擅长创新 工程则是循规蹈矩的 一名工程师则必须要守规矩 而软件开发之所以可以称为一门艺术而不是工程师因为软件要满足用户的需求并不是循规蹈矩的 不同的软件开发者对做一个相同的软 件开发
  • 制作ubuntu server启动盘

    Mac 查看磁盘列表 gt gt gt diskutil list 格式化磁盘 gt gt gt diskutil partitionDisk dev disk2 MBR FAT32 UNTITLED 0b 推出磁盘 gt gt gt di
  • 练习--输出一个7行的菱形

    练习 输出一个7行的菱形 对于菱形的输出 在编程的时候需要注意空格的输出和 号的输出 define CRT SECURE NO WARNINGS 1 include
  • Redis简介以及和其他缓存数据库的区别

    转载 https blog csdn net xlgen157387 article details 60761232 Redis简介 Redis 是一个开源的内存中的数据结构存储系统 它可以用作数据库 缓存和消息中间件 它支持多种类型的数
  • python二维数组切片规则_详解Python二维数组与三维数组切片的方法

    如果对象是二维数组 则切片应当是x 的形式 里面有一个冒号 冒号之前和之后分别表示对象的第0个维度和第1个维度 如果对象是三维数组 则切片应当是x 里面有两个冒号 分割出三个间隔 三个间隔的前 中和后分别表示对象的第0 1 2个维度 x n
  • HTML中让表单input等文本框为只读不可编辑但可以获取value值的方法;让文本域前面的内容显示在左上角,居中...

    HTML中让表单input等文本框为只读不可编辑的方法 有时候 我们希望表单中的文本框是只读的 让用户不能修改其中的信息 如使input text的内容 中国两个字不可以修改 有时候 我们希望表单中的文本框是只读的 让用户不能修改其中的信息
  • 预加重、去加重和均衡总结

    1 定义 由于在信号通路中 相对于低频分量 信号的高频分量有很大的衰减 均衡的作用就是在接收端口对信号处理 根据信号经过的基板的衰减特性 将信号的高频成分适当增强 这样就可以得到低频成分与高频成分被 均衡 到一个水平的信号 增强了发送到接收
  • linux 可视化分区,可视化linux块设备的工具(分区,LVM PV,LV,mdadm设备……)

    我正在寻找一种能够扫描我的无GUI服务器的工具 并以一些丰富的可视化格式创建一个易于理解的所有块设备及其关系 磁盘分区 mdadm设备 LVM PV和LV等 的粗略概述 html pdf svg png 这是一个简单的示例可视化 sda1
  • Angular和RxJS的一些应用场景

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 最近一直看有关rxjs的东西 想学会响应式编程思想 但这种东西没点实操根本不能融会贯通 现在只能借鉴别人的东西分析一下 先上两篇帖子都是关于rxjs在NG上的实际应用 使用
  • 解决CuDNN runtime版本和编译版本不同的问题

    在编译安装好TensorFlow后 可下载示例代码运行 但在执行run all sh时 出现如下错误 该错误意思就是CuDNN的runtime版本和编译时指定的版本不同 2018 05 08 09 00 18 042137 E tensor
  • linux 返回上一级目录 和 返回根目录

    返回上一级目录 cd 返回根目录 cd
  • DRM几个重要的结构体及panel开发

    一 DRM Linux下的DRM框架内容众多 结构复杂 本文将简单介绍下开发过程中用到的几个结构体 这几个结构体都在之前文章里面开发DRM驱动时用到的 未用到的暂不介绍 DRM中的KMS包含Framebuffer CRTC ENCODER
  • 机器智能的未来

    ChatGPT丨小智ai丨chatgpt丨人工智能丨OpenAI丨聊天机器人丨AI语音助手丨GPT 3 5丨OpenAI ChatGPT GPT 4 GPT 3 人机对话 ChatGPT应用 小智ai 小智ai 小智ai 小智ai 小智AI
  • MySql使用全记录4 -----设置root口令(即修改默认口令)

    设置MySql的root用户口令 本文由CSDN 蚍蜉撼青松 主页 http blog csdn net howeverpf 整理编辑 转载请注明出处 参考链接 http wenku baidu com view 73ab05737fd53
  • html取出单元格中的数值_简单爬取html页面的表格中的数据

    关于爬虫方面本人小白一个 通过无所不能的度娘 从中汲取营养 得到一个简单的能用的例子 在这分享一下 供大家一起汲取 首先说一下 你想从一个页面中获取到你想要的数据 首先你要先得到这个页面 然后把获取到的页面 使用Jsoup解析成 Docum