java取网页数据_浅析JAVA实现网页取内容
有很多网站提供从其他网站提取新闻甚至是从向翻译网站取内容
由于手头做的网站需要涉及这个方面的内容,所以最近研究了一下
这里把我的一点小心得写给大家
希望大家讨论共同进步
首先我觉得这种功能的实现其实是依靠对数据包的解析
我的思路是把网站的整个源码先截取下来
然后对包的每一行HTML代码进行分析
找到需要的内容的HTML代码的共性
再提取这些共性代码出来
最后精简掉这些多余的代码得到需要内容
我写了一个粗略的程序来获取金山词霸的翻译
贴上让大家看看
顺便问达人这ENCODE的转化怎么完成
我想好久都没能解决
import java.net.*;
import java.io.*;
public class gethead
{
public static String str = "
int.";
public static String end = "
";
URL url;
URLConnection uc;
InputStream in;
DataInputStream din;
String get;
StringBuffer sb;
StringBuffer add;
DataInputStream in1;
public gethead()
{
int i=0;
sb = new StringBuffer();
add = new StringBuffer();
add.append("http://cb.kingsoft.com/search?s=");
System.out.println("Input the word you want to get:");
try
{
in1 = new DataInputStream(System.in);
String word = in1.readLine();
add.append(word).append("&lang=utf-8");
url = new URL(add.toString());
uc = url.openConnection();
in = uc.getInputStream();
din = new DataInputStream(in);
while((get = din.readLine())!=null)
{
if((get.indexOf(str))!=-1)
{
i=i+1;
}
if(i!=0)
{
sb.append(get);
}
if(get.indexOf(end)!=1)
{
i=0;
}
}
String oot = sb.toString();
oot = oot.replaceAll(str,"");
oot = oot.replaceAll(end,"");
//oot = java.net.URLEncoder.encode(oot);
oot = new String(oot.getBytes("UTF-8"),"GB2312");
System.out.println(oot);
}catch(IOException e)
{}catch(Exception e)
{}
}
public static void main(String[] args)
{
gethead g = new gethead();
}
}
技术的核心是截取数据流,再进行分析提取,看起来还是比较简单的,但是难点在对HTML的源代码的具体分析和操作上
其实这个技术的应用我个人觉得还是会比较广泛的
在网络的数据流的分析应用上还是比较简单易用的
java取网页数据_浅析JAVA实现网页取内容相关推荐
- java抓取页面数据_通过java抓取任何指定网页的数据
假设你需要获取51job人才网上java人才的需求数量,首先你需要分析51job网站的搜索这一块是怎么运作的,通过解析网页的源代码,我们发现了以下一些信息: 1. 搜索时页面请求的URL是 http: ...
- java 线程组作用_浅析Java中线程组(ThreadGroup类)
一.概念 Java中使用ThreadGroup类来代表线程组,表示一组线程的集合,可以对一批线程和线程组进行管理.可以把线程归属到某一个线程组中,线程组中可以有线程对象,也可以有线程组,组中还可以有线 ...
- r语言抓取网页数据_使用R进行网页抓取的简介
r语言抓取网页数据 by Hiren Patel 希伦·帕特尔(Hiren Patel) 使用R进行网页抓取的简介 (An introduction to web scraping using R) ...
- java 取整符号_浅析java中的取整(/)和求余(%)
1.取整运算符 取整从字面意思理解就是被除数到底包含几个除数,也就是能被整除多少次,那么它有哪些需要注意的地方呢?先看下面的两端代码: int a = 10; int b = 3; double c= ...
- java枚举对象作用_浅析Java编程中枚举类型的定义与使用
定义枚举类型时本质上就是在定义一个类,只不过很多细节由编译器帮您补齐了,所以某些程度上,enum关键字的 作用就像是class或interface. 当您使用"enum"定义枚举类 ...
- java定时产生随机数_浅析Java随机数与定时器
产生90-100的重复的随机数: public class RandomTest { public static void main(String[] args){ /* * Math.random( ...
- Java存储任意对象_浅析java设计模式(一)----异构容器,可以存储任何对象类型为其他类提供该对象...
最近在着手重构一个java UI桌面项目,发现这个项目在一开始的时候由于需求不明确,以及开发人员对swing框架不熟悉等问题造成了页面代码混乱的情况:为了能够在各个类里都可以拿到其他类的引用去进行相应 ...
- java 读取mysql数据_使用java从mysql数据库读取数据
首先,我正在使用jTextFields阅读用户的产品名称和产品数量.对于该产品,我使用sql查询从数据库中读取产品ID和价格.但是在下面的代码中我在jtextField中显示产品价格,但是在运行tha ...
- java接收xml数据_关于java后台如何接收xml格式的数据
业务场景:用户发送下单请求,格式为xml格式,服务器接收数据完成下单,并返回结果给客户. 请求格式: 这段请求报文是xml格式的,在后台我们可以使用 javax.xml.bind.annotation ...
最新文章
- 假期怎么提升Python技能?100+编程题给你练~
- LeetCode 滑动窗口(Sliding Window)类问题总结
- k8s 自定义dns_K8S 生态周报| Docker v19.03.10 正式发布
- hibernate教程--常用配置和核心API
- 卡扇区数据教程_硬盘有坏道了?如何对硬盘进行扇区级复制及数据恢复?
- 如何改造现有文件为 CMD 模块
- [蓝桥杯][算法提高VIP]Sharing Chocolate(状压dp记忆化搜索)
- 程序员面试金典 - 面试题 17.24. 最大子矩阵(转成一维最大子序和 DP)
- 大数据技术之 Kafka (第 3 章 Kafka 架构深入 ) Kafka 生产者
- java中堆和栈的区别_java中堆和栈的区别
- Android实现截屏功能(已适配Android11)
- echarts 文本标签配置、label文字样式
- 用python编写鸡兔同笼问题
- Kali-DDoS工具集合
- 计算机无法传输文件,手机连接电脑无法互传文件怎么办
- 对视频文件进行简单的加密
- treegrid 与java交互_EXTJS实现的TREEGRID(后台java,框架SpringMVC)
- 怎么把html的网页做成视频,html5网页中怎么加入视频?怎么为网页添加视频?
- 浏览器首页被2345、hao123锁定了,怎么办
- 趣谈唯一邀请码生成方法
热门文章
- java数组如何pop_Js数组的操作push,pop,shift,unshift等方法详细介绍
- MMD_3a_CommunitiesInSN
- python基础练习题
- Java语言程序设计(基础篇)第七章(2 18 34)
- pandas 读写 excel 数据
- windows10 自动开机、关机
- 【ES6】数值的拓展
- java学生-成绩关联实体_java毕业设计_springboot框架的学生成绩智能管理
- mysql备份数据库语句6_13.4 MySQL用户管理;13.5 常用sql语句;13.6 MySQL数据库备份恢复...
- c语言 简单编程题,c语言简单编程练习题.doc