CSDB Blog快速备份程序-备份你自己的Blog 基于xml(转)

以下程序需要htmlparser.jar。你可以直接从
http://umn.dl.sourceforge.net/sourceforge/htmlparser/htmlparser1_5_20040728.zip
下载,http://htmlparser.sourceforge.net是htmlparser的主页。

//copy from here.

/*******************************************************************************
 * $Header$
 * $Revision$
 * $Date$
 *
 *==============================================================================
 *
 * Copyright (c) 2001-2004 XXX Technologies, Ltd.
 * All rights reserved.
 *
 * Created on 2004-12-3
 *******************************************************************************/

import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.MalformedURLException;
import java.net.URL;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.List;

import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;

import org.htmlparser.Node;
import org.htmlparser.Parser;
import org.htmlparser.lexer.Page;
import org.htmlparser.tags.Div;
import org.htmlparser.util.ParserException;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;

/**
 *
 * @author 晏斐 (mailto:mr_yanfei&yahoo.com)
 */

public final class BlogBackupTool
{
    private static final String RSS_URL = "http://blog.csdn.net/mr_yanfei/Rss.aspx";
    private static final String SAVE_PATH = "d://temp";
    private static final String CHANNEL = "channel";
    private static final String CHANNEL_ITEM = "item";
    private static final String ITEM_TITLE = "title";
    private static final String ITEM_LINK = "link";
    private static final boolean FILTER = true;

    class Blog
    {
        private String fTitle;
        private String fLink;
        public Blog(String title, String link)
        {
            fTitle = title;
            fLink = link;
        }
        public String getTitle()
        {
            return fTitle;
        }
        public String getLink()
        {
            return fLink;
        }
    }

    private Blog[] getBlogs(String rssUrl)
    {
        DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
        factory.setNamespaceAware(true);

        List result = new ArrayList();
        try
        {
            URL url = new URL(rssUrl);
            DocumentBuilder builder = factory.newDocumentBuilder();
            Document document = builder.parse(url.openStream());

            Element channel = document.getDocumentElement();

            channel = (Element) document.getElementsByTagName(CHANNEL).item(0);
            if (CHANNEL.equals(channel.getLocalName()))
            {

                NodeList nodes = channel.getChildNodes();
                for (int i = 0; i < nodes.getLength(); i++)
                {
                    org.w3c.dom.Node item = nodes.item(i);
                    if (CHANNEL_ITEM.equals(item.getLocalName()))
                    {
                        String title = getChildNodeText(item, ITEM_TITLE);
                        String link = getChildNodeText(item, ITEM_LINK);
                        result.add(new Blog(title, link));
                    }
                }
            }
        } catch (Exception ex)
        {
            ex.printStackTrace();
        }
        return (Blog[]) result.toArray(new Blog[result.size()]);
    }

    private String getChildNodeText(org.w3c.dom.Node item, String nodeName)
    {

        NodeList nodes = item.getChildNodes();
        for (int i = 0; i < nodes.getLength(); i++)
        {
            org.w3c.dom.Node node = nodes.item(i);
            if (nodeName.equals(node.getLocalName()))
            {
                return node.getFirstChild().getNodeValue();
            }
        }
        return null;
    }

    private String validFilename(String name)
    {
        String result = name.replace(':', '_');
        result = result.replace('/', '_');
        result = result.replace('//', '_');
        result = result.replace('?', '?');
        result = result.replace('*', '_');
        result = result.replace('<', '_');
        result = result.replace('>', '_');
        result = result.replace('|', '_');
        result = result.replace('"', '_');
        return result;
    }

    private void saveBlogs(Blog[] blogs) throws Exception
    {

        String title, link;
        for (int i = 0; i < blogs.length; i++)
        {
            title = blogs[i].getTitle();
            link = blogs[i].getLink();

            System.out.println("Get Blog " + title);
            System.out.println("URL : " + link);

            if (FILTER)
            {
                Parser parser = null;
                try
                {
                    parser = new Parser(link);
                } catch (ParserException ex)
                {
                    continue;
                }
                Page page = parser.getLexer().getPage();
                String pageUrl = page.getUrl();

                Node[] bases = parser.extractAllNodesThatAre(Div.class);
                for (int j = 0; j < bases.length; j++)
                {
                    String attr = ((Div) bases[j]).getAttribute("class");

                    if (attr == null)
                        attr = "";

                    if (attr.equals("post"))
                    {
                        String content = ((Div) bases[j]).getChildrenHTML();
                        saveBlogToFile(title + ".html", content);
                        break;
                    }
                }
                parser.reset();
            } else
            {
                StringBuffer buffer = getHtmlFromURL(link);
                saveBlogToFile(title + ".html", buffer.toString());
            }
        }
    }

    private StringBuffer getHtmlFromURL(String url)
    {
        StringBuffer buffer = new StringBuffer();
        try
        {
            URL pageUrl = new URL(url);

            BufferedReader in = new BufferedReader(new InputStreamReader(
                    pageUrl.openStream()));
            String str;
            while ((str = in.readLine()) != null)
            {
                buffer.append(str);
            }
            in.close();
        } catch (MalformedURLException e)
        {
            e.printStackTrace();
        } catch (IOException e)
        {
            e.printStackTrace();
        }
        return buffer;
    }

    private void saveBlogToFile(String filename, String content)
    {
        try
        {
            filename = validFilename(filename);
            File file = new File(SAVE_PATH, filename);
            OutputStream out = new FileOutputStream(file);
            OutputStreamWriter writer = new OutputStreamWriter(out);
            writer.write(content);
            writer.close();
        } catch (IOException ex)
        {

        }
    }

    public static void main(String[] args) throws Exception
    {
        BlogBackupTool reader = new BlogBackupTool();
        Blog[] blogs = reader.getBlogs(RSS_URL);

        reader.saveBlogs(blogs);
        String msg = MessageFormat.format("Totle {0} blogs saved.",
                new String[] { Integer.toString(blogs.length) });
        System.out.println(msg);
    }
}
//end

XML文件:

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>晏斐的Blog</title><link>http://blog.csdn.net/mr_yanfei/</link><description /><dc:language>zh-CHS</dc:language><generator>.Text Version 0.958.2004.2001</generator><item><dc:creator>晏斐</dc:creator><title>WebOnSwing</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx</link><pubDate>Fri, 31 Dec 2004 14:22:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/235924.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/235924.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/235924.aspx</trackback:ping><description>WebOnSwing is a revolutionary multiple environment application framework that allows you to create web applications in the same way you develope a desktop one. You dont need to use JSP files, special tags, XML files, requests, posts, etc. Everything is Java and pure HTML files that comes directly from the graphic designer. &lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/235924.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>What is SwingWT?</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx</link><pubDate>Fri, 31 Dec 2004 13:54:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/235889.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/235889.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/235889.aspx</trackback:ping><description>SwingWT is a 100% pure Java library which aims to be a free implementation of Swing and AWT. Unlike Swing, it drives native peer widgets for your platform from SWT.&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/235889.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Java Launcher 2.3 released </title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx</link><pubDate>Fri, 31 Dec 2004 13:52:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/235886.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx#Feedback</comments><slash:comments>10</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/235886.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/235886.aspx</trackback:ping><description>(1) Launching java applications and applets by double-clicking class files in Windows explorer.
(2) Launching java source code in text format and class hierarchy in graphic format by right-clicking class files in Windows explorer.
(3) Creating Windows exe files for Java applications with user icon, arguments, system, user and sibling classpaths
(4) Creating executable Jar files for Java applications &lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/235886.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>CSDB Blog快速备份程序-备份你自己的Blog</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx</link><pubDate>Fri, 03 Dec 2004 18:18:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/203699.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/203699.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/203699.aspx</trackback:ping><description>自己写的Blog放到网上总有点不放心。想做一个备份,于是写了这个程序。会将所有文件一股脑都保存到d:/temp下,再打个包保存起来。需要先下载一个htmlparser.jar.&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/203699.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>一边编程一边阅读Blog-Eclipse Rss Reader</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx</link><pubDate>Fri, 03 Dec 2004 12:43:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/203209.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/203209.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/203209.aspx</trackback:ping><description>工作累了的时候想看看csdn的blog上有什么新的文章吗?不用打开浏览器就知道今天有什么新的文章。试试Eclipse Rss Reader吧。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/203209.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>轻量级的xml parser: KXML</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx</link><pubDate>Sat, 27 Nov 2004 16:12:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195953.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx#Feedback</comments><slash:comments>5</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195953.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195953.aspx</trackback:ping><description>kXML is a small XML pull parser, specially designed for constrained environments such as Applets, Personal Java or MIDP devices.

最小的版本只有11k,比那些庞大的xml解析起确实小好多。当你对xml解析不需要很严格时可以使用它。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195953.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>An OSGi framework implementation </title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx</link><pubDate>Sat, 27 Nov 2004 15:51:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195930.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx#Feedback</comments><slash:comments>21</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195930.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195930.aspx</trackback:ping><description>Oscar is an open source implementation of the Open Services Gateway Initiative (OSGi) framework specification; the goal is to provide a completely compliant implementation of the OSGi framework specification. Oscar is currently compliant with a large portion of the OSGi 3 specifications, although certain compliance work still needs to be completed. Despite this fact, the OSGi framework functionality provided by Oscar is very stable and is in use by many people. &lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195930.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>XSWT for Eclipse form layout</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx</link><pubDate>Sat, 27 Nov 2004 14:52:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195878.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195878.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195878.aspx</trackback:ping><description>现在开发的产品中用户界面也是用XML定义的,但是界面定义很不灵活。XSWT网站上介绍说XSWT是和SWT元素一一对应的,应该有很大的灵活性。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195878.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>帮你免于失业的十大软件技术</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx</link><pubDate>Sat, 27 Nov 2004 13:17:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195782.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195782.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195782.aspx</trackback:ping><description>罗素·琼斯是DevX的执行编辑,她提出了当前软件行业的十门热点技术。收藏并时刻勉励自己学海无涯。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195782.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Eclipse, OSGI与Plugin机制杂谈</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx</link><pubDate>Sat, 27 Nov 2004 12:00:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/195701.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/195701.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/195701.aspx</trackback:ping><description>Eclipse 3.0并没有用OSGI替换掉原来的PlugIn机制。它只是做了与标准兼容的工作:给用户提供了一系

列的API来访问,在这个过程中,就必须要做一些改变(比如plugin registry和loading机制)来同OSGI标

准完全兼容。最初的Plugin核心只支持静态的扩展,就是说,如果要改变一个已经存在的Plug就必须重启

core,也就是要退出Eclipse并重启。

有很多人问Eclipse为什么要兼容OSGI规范而不是其他的规范呢?
在Eclipse被捐赠出来以前,Eclipse由OTI来开发,其目标是开发一个嵌入式Java软件的开发平台。互联

网上现在仍然由很多的连接指向 Visual Age Micro Edition (VAME). 这也是SWT被构思的一个原因,他

们想将SWT使用在嵌入式设备中的用户界面。这种渊源关系解释了当时为什么选择OSGI规范。

另外一个原因是除了OSGI没有其他的规范。OSGI规范在轻量级服务架构应用方面被广泛的支持。而且OSGI被好多电信业的知名公司和一些其他行业的知名公司所支持。他们需&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/195701.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Eclipse资源改变通知机制</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx</link><pubDate>Fri, 26 Nov 2004 15:59:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/194660.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/194660.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/194660.aspx</trackback:ping><description>"How you've Changed"详细描述了Eclipse的资源改变事件通知机制。以及开发者如何获得资源改变事件和如何作出相应的操作。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/194660.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>发现魔方阵的一个有趣现象</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx</link><pubDate>Tue, 23 Nov 2004 09:57:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/191715.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/191715.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/191715.aspx</trackback:ping><description>昨天机器上装了一个MatLab 6.5,无意中发现一个有趣的现象:
n阶魔方阵的行列式值等于零。条件是(n mode 2 = 0 and n &gt; 2);&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/191715.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>关于“软件学院”的思考</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx</link><pubDate>Mon, 15 Nov 2004 16:18:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/182658.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/182658.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/182658.aspx</trackback:ping><description>在网上看到这样一段话,很有意思。我也很赞同。...&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/182658.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>天网防火墙去掉更新提示对话框</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx</link><pubDate>Mon, 15 Nov 2004 16:10:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/182645.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/182645.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/182645.aspx</trackback:ping><description>装了个天网2.7,用着不错。就是每次启动都会弹出一个对话框,提示有新的版本,要不要更新。太麻烦,每次重启都要去关掉它。做的太不人性化了。
于是想去掉它。天网是delphi写的,用DeDe反编译后,NewVerFrm竟然找不到createForm之类的函数,所以不是在NewVerFrm里面判断的。又找了好几个地方都不是。又打开W32Dasm看了看,也不好弄。
忽然一想,天网判断是否有更新版本当然要访问网络,于是用Sniffer Pro监听Http协议,发现程序会去访问
http://sky.net.cn/pfwupdate/NewVer.php 这个地址。然后返回最新的版本号和本地的版本比较。

打开UltraEdit,查找以上地址,将地址改为http://sky.net.cm/pfwupdate/NewVer.php 这样它永远也访问不到了。重新启动天网,讨厌的对话框没有了。&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/182645.aspx" width = "1" height = "1" /&gt;</description></item><item><dc:creator>晏斐</dc:creator><title>Java破解的新思路</title><link>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx</link><pubDate>Mon, 15 Nov 2004 13:04:00 GMT</pubDate><guid>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx</guid><wfw:comment>http://blog.csdn.net/mr_yanfei/comments/182329.aspx</wfw:comment><comments>http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx#Feedback</comments><slash:comments>3</slash:comments><wfw:commentRss>http://blog.csdn.net/mr_yanfei/comments/commentRss/182329.aspx</wfw:commentRss><trackback:ping>http://blog.csdn.net/mr_yanfei/services/trackbacks/182329.aspx</trackback:ping><description>前几天在网上看到有一个xml编辑的插件,做的挺好。但是pro版本要注册。下载了一个用着不错,功能挺多。...决定破解一下。找到了LicenseDialog,折腾了半天知道了使用的是RSA算法。昨晚在网上看到说超过1024bit,几乎就没有了破解的可能。决定放弃。找找别的办法。
&lt;img src ="http://blog.csdn.net/mr_yanfei/aggbug/182329.aspx" width = "1" height = "1" /&gt;</description></item></channel></rss>

结果显示:
Get Blog WebOnSwing
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235924.aspx
Get Blog What is SwingWT?
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235889.aspx
Get Blog Java Launcher 2.3 released
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/31/235886.aspx
Get Blog CSDB Blog快速备份程序-备份你自己的Blog
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203699.aspx
Get Blog 一边编程一边阅读Blog-Eclipse Rss Reader
URL : http://blog.csdn.net/mr_yanfei/archive/2004/12/03/203209.aspx
Get Blog 轻量级的xml parser: KXML
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195953.aspx
Get Blog An OSGi framework implementation
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195930.aspx
Get Blog XSWT for Eclipse form layout
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195878.aspx
Get Blog 帮你免于失业的十大软件技术
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195782.aspx
Get Blog Eclipse, OSGI与Plugin机制杂谈
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/27/195701.aspx
Get Blog Eclipse资源改变通知机制
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/26/194660.aspx
Get Blog 发现魔方阵的一个有趣现象
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/23/191715.aspx
Get Blog 关于“软件学院”的思考
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182658.aspx
Get Blog 天网防火墙去掉更新提示对话框
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182645.aspx
Get Blog Java破解的新思路
URL : http://blog.csdn.net/mr_yanfei/archive/2004/11/15/182329.aspx

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值