浅析JAVA实现网页取内容

原创 2004年09月29日 13:31:00


摘自http://blog.csdn.net/warlife/archive/2004/09/27/118665.aspx

有很多网站提供从其他网站提取新闻甚至是从向翻译网站取内容
由于手头做的网站需要涉及这个方面的内容,所以最近研究了一下
这里把我的一点小心得写给大家
希望大家讨论共同进步

首先我觉得这种功能的实现其实是依靠对数据包的解析
我的思路是把网站的整个源码先截取下来
然后对包的每一行HTML代码进行分析
找到需要的内容的HTML代码的共性
再提取这些共性代码出来
最后精简掉这些多余的代码得到需要内容
我写了一个粗略的程序来获取金山词霸的翻译
贴上让大家看看
顺便问达人这ENCODE的转化怎么完成
我想好久都没能解决
import java.net.*;
import java.io.*;

public class gethead
{
        public static String str = "<tr><td></td><td class=/"explain_attr/">int.</td></tr><tr><td><img width=/"1/" height=/"1/"></td><td class=/"explain_item/">";
        public static String end = "</td></tr>";
        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图形窗口显示网页内容

     其实非常简单,懒得多做说明了,直接上代码: import java.awt.Desktop;import java.net.URL;import javax.swing.JEditorPan...
  • im110
  • im110
  • 2011年06月28日 15:38
  • 4970

js获取网页选中部分的内容,包含html代码

function getSelectedContents(){ if (window.getSelection) { //chrome,firefox,opera var ra...
  • sqzhao
  • sqzhao
  • 2015年10月01日 14:15
  • 889

HtmlParser提取网页中的纯文本信息-java

 from:http://perfectlife.javaeye.com/blog/366084HtmlParser提取网页中的纯文本信息文章分类:Java编程 关键字: 如何使用htmlparser...
  • lillllllll
  • lillllllll
  • 2011年03月19日 13:04
  • 10875

java通过url获取网页内容

在java中,一个url的简单小应用,就是通过url爬取网页的内容。在这里会遇到一个小问题,如果是服务器端禁止抓取,会在控制台报 HTTP 403错误代码。例如CSDN博客网站java.io.IOEx...
  • HLK_1135
  • HLK_1135
  • 2017年01月01日 20:42
  • 2106

Python获取网页指定内容(BeautifulSoup工具的使用方法)

Python用做数据处理还是相当不错的,如果你想要做爬虫,Python是很好的选择,它有很多已经写好的类包,只要调用,即可完成很多复杂的功能,此文中所有的功能都是基于BeautifulSoup这个包。...
  • Danielntz
  • Danielntz
  • 2016年07月15日 21:52
  • 7982

Java 网络 URL 从网页上获取数据

JAVA 网络 URL 网上获取数据
  • PeicongHe
  • PeicongHe
  • 2017年02月09日 01:23
  • 2469

Java提取中括号中的内容

曾经在工作中遇到一个问题,就是需要一个字符串中每一个中括号里的内容,在网上搜了一下,发现用正则表达式可以提取中括号中的内容,具体实现如下: {CSDN:CODE:1829481} 输出结果如下:...
  • tianpy5
  • tianpy5
  • 2016年08月14日 19:33
  • 10930

获取html网页中的body部分内容

1.导入htmlparser.jar架包 2./**      * 获取HTML页面中BODY标签的内容      * @param inputHTML      *      * @re...
  • hedan_hd
  • hedan_hd
  • 2012年09月21日 16:49
  • 3973

java线程:单例隐藏ThreadLocal实现线程数据共享

A和B需要共享同一线程,同样的另一组A和B共享另一组线程,A和B相互之间不受影响。...
  • u014078192
  • u014078192
  • 2014年06月10日 09:26
  • 1344

jsp页面分享到QQ空间、微信、微博、人人网等

window._bd_share_config={"common":
  • leayefang
  • leayefang
  • 2016年04月07日 15:06
  • 3318
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:浅析JAVA实现网页取内容
举报原因:
原因补充:

(最多只允许输入30个字)