`
bjxagu
  • 浏览: 165315 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

从网页源文件中得到链接

阅读更多

import java.net.*;
import java.io.*;
import java.util.*;

class ScanPage{
    private static String strPage;
    private String strUrl;
    private String fileName;
    public void setURL(String strUrl){
        this.strUrl=strUrl;
    }
    //从地址中得到文件名
    public void setFileName(){
        int i;
        char ch;
        i=strUrl.length();
        ch=strUrl.charAt(--i);
        while(ch!='/' && ch>0)
            ch=strUrl.charAt(--i);
        fileName=strUrl.substring(i);
    }
    //下载网页
    public void downFile()throws IOException{
        URL url =new URL(strUrl);
        InputStream is =url.openStream();
        OutputStream os =new FileOutputStream(fileName);
        byte[] buffer =new byte[512];
        int len;
        while((len =is.read(buffer))!=-1)
            os.write(buffer,0,len);
        is.close();
        os.close();
    }
    //读文件
    public void readFile() throws IOException {
        StringBuffer sb = new StringBuffer();
        BufferedReader in =new BufferedReader(new FileReader(fileName));
        String s;
        while((s = in.readLine()) != null) {
            sb.append(s);
            sb.append("\n");
        }
        in.close();
        strPage=sb.toString();
    }
    public String getTitle(){
        
        return "";
    }
    //扫描标签,得到资源
    public void scanLabel(ArrayList al,String strLabel,String strType){
        int idx;   //返回下标
        String strTmp;
        strPage=strPage.toLowerCase();  //转换为小写,以便后面比较
        idx = strPage.indexOf("<body");
        while(idx!=-1){
            idx=strPage.indexOf(strLabel,idx);
            if (idx==-1)
                break;
            else{
                int i=0;
                idx=idx+strLabel.length();
                for(;strPage.charAt(idx+i)!='>' && strPage.charAt(idx+i)!=32;++i);
                strTmp=strPage.substring(idx,idx+i);
                idx=idx+i;
                //去掉首尾引号
                if (strTmp.charAt(0)=='\"')
                    strTmp=strTmp.substring(1);
                if (strTmp.charAt(strTmp.length()-1)=='\"')
                    strTmp=strTmp.substring(0,strTmp.length()-1);
            //判断是否是用户需要的类型
                if (strType.equals("*"))
                    al.add(strTmp);
                else{
                    String right;
                    if (strTmp.length()>=strType.length()){
                        right=strTmp.substring(strTmp.length()-strType.length());
                        right=right.toLowerCase();
                        if (right.equals(strType))
                            al.add(strTmp);
                    }
                }
            }
        }
    }
}

class ScanApp{
    public static void main(String[] args){
        ArrayList al=new ArrayList();
        ScanPage sp=new ScanPage();
        sp.setURL(args[0]);
        sp.setFileName();
        try{
            sp.downFile();
            sp.readFile();
        }catch(IOException ie){System.out.println("文件操作出错");};
        sp.scanLabel(al,"<a href=",".html");
        for(int i=0;i<al.size();i++){
            System.out.println(al.get(i));
        }
    }
}

E:\javawork>java ScanApp http://www.17kyk.com/Html/Book/16/2431/list.html
list.html
429400.html
429401.html
439789.html
429403.html
429404.html
429405.html
429406.html
429407.html
429408.html
429409.html
429411.html
429412.html
说明:
scanLabel针对<a href和<img src这2个标签进行扫描.
得到所有链接存储在ArrayList中


scanLabel(al,"<a href=","*");
scanLabel(al,"<img src=","*");
得到特定的链接
scanLabel(al,"<a href=",".html");
scanLabel(al,"<a href=",".asp");
scanLabel(al,"<img src=",".gif");

分享到:
评论

相关推荐

    网页源文件中的汉字提取

    网页源文件中的汉字提取是一项...通过以上方法,我们可以高效地从网页源文件中提取汉字,这对于数据挖掘、信息提取、文本分析等领域具有重要意义。理解并掌握这些技术,能够帮助我们在实际工作中更有效地处理网页数据。

    HTML网页源文件

    通过Dreamweaver制作的HTML网页源文件,通常会结合CSS和JavaScript来实现更丰富的视觉效果和交互性。 CSS(Cascading Style Sheets)是用于控制网页样式和布局的语言。它可以用来定义字体、颜色、间距、布局以及更...

    易语言源码通过获取网页的源文件得到媒体地址.rar

    【易语言源码通过获取网页的源文件得到媒体地址】是一个使用易语言编程实现的程序,主要用于从网页的HTML源代码中抓取媒体资源的URL。这个程序对于想要学习网络爬虫技术,尤其是使用易语言进行开发的初学者来说,...

    网页源文件打不开,本人试过一种解决方法

    在日常使用浏览器的过程中,有时会遇到无法打开网页源文件的情况。这可能是由于多种原因造成的: 1. **浏览器兼容性问题**:不同的浏览器对网页源代码的支持程度不同,部分老旧或非主流浏览器可能无法正确解析和...

    易语言通过获取网页的源文件得到媒体地址

    首先,我们要了解获取网页源文件的基本步骤。这通常涉及到HTTP或HTTPS协议,通过发送GET请求到指定的URL来获取HTML或其他格式的网页内容。在易语言中,可以使用内置的网络模块或者第三方库来实现这一功能。例如,...

    PB获取HTML网页源代码

    PB结合dll实现网页源文件的获取,这个应用的不同点是没有了32765字节的尺寸限制,可以完整的获得大页面的所有代码,资源包中有演示程序和dll文件,希望给大家带来帮助。 PB版本为6.5,适应于任何高版本的PB

    创新灵感科技产品网页模板(PSD)源文件

    3. psd - 这是主要的PSD源文件,其中包含了网页模板的所有设计元素和图层,设计师可以在这个文件中进行修改和自定义。 综上所述,这个资源包提供了一个高质量的科技产品网页设计模板,采用PSD格式,方便在Adobe ...

    磁力搜网页版磁力搜网页版.zip

    这种链接方式使得用户可以在不同的网络环境中分享和获取相同的文件,无需担心源文件位置变动带来的影响。 BT协议,全称BitTorrent协议,是一种分布式文件分享协议,它允许用户互相共享大文件。在BT下载过程中,用户...

    10个Flash广告源文件

    在IT行业中,Flash曾是创建动态网页内容、交互式应用程序和广告的重要工具。"10个Flash广告源文件"这个资源对于那些想要深入学习Flash技术和广告设计的人来说,是一份宝贵的资料。下面,我们将详细探讨这些知识点。 ...

    flash动态广告源文件

    标题中的“flash动态广告源文件”指的是使用Adobe Flash软件创建的动画或互动广告,这些广告在网页上以动态形式展示,通常包含丰富的图形、声音和交互性元素,以吸引用户的注意力并提高广告效果。Flash广告在20世纪...

    通过获取网页的源文件得到媒体地址-易语言

    通过以上步骤,我们可以编写一个易语言程序,实现从网页源文件中提取媒体地址的功能。这个过程涉及到了网络编程基础、HTML解析、字符串处理等多个知识点,是网络数据抓取和分析的基础。在实际应用中,可能还需要结合...

    chartdir51源文件

    "chartdir51源文件"是一个与Qt框架相关的项目,主要包含一个动态链接库(DLL)文件`chartdir51.dll`。DLL是Windows操作系统中的一种共享库机制,它允许多个程序同时使用同一段代码,减少了内存占用并提高了效率。在...

    红色网页界面,html,不含psd,供需要红色网页模板的人参考

    在红色网页模板中,HTML代码用于创建页面布局、标题、段落、链接、图像等元素。熟练掌握HTML能帮助开发者精确控制网页的呈现效果。 2. CSS(Cascading Style Sheets):虽然在这个模板中没有明确提到CSS,但它是与...

    Dreamweaver中文版网页制作教程电子书

    6. **源文件分析**:提供的源文件可以让读者更深入地理解网页结构和代码编写,有助于自我检验和提升。 7. **调试与发布**:教程还将涉及网页的调试方法,确保在不同浏览器中的兼容性,以及如何将完成的网站上传至...

    网页中插入股票图片代码

    在现代互联网应用中,尤其是金融信息服务领域,网页中嵌入实时或历史的股票图表是非常常见的需求之一。通过这种方式,用户可以直观地了解到某只股票的价格走势、交易量等关键信息,这对于投资者而言至关重要。本文将...

    京桥基业集团.网站建设要求psd源文件

    设计师与开发者的密切配合至关重要,确保设计意图在实际开发中得到准确实现。 综上所述,"京桥基业集团.网站建设要求psd源文件"不仅涉及到具体的页面设计,还涵盖了品牌建设、用户体验、网页布局、色彩与字体应用、...

    网页设计综合实验报告.doc

    网页设计是计算机科学中一个重要的领域,涉及到网页的设计、制作和开发。以下是网页设计综合实验报告的知识点总结: 一、实验目的 * 使用 Dreamweaver、Fireworks、Flash 三种软件完成网页的制作 * 制作一个完整的...

    Flash产品网站模板源文件

    Flash技术在网页设计领域曾经占据着重要的地位,尤其是在制作动态交互网站模板方面,其丰富的动画效果和灵活的交互性深受设计师喜爱。本篇将围绕“Flash产品网站模板源文件”这一主题,详细探讨相关知识点,包括...

    价值数百亿UImaiker最新精美后台管理系统模版html源文件

    通过这个UImaiker的后台管理系统模版,开发者可以获得一个预配置的界面,从而更专注于后台功能的开发和优化,而不是从零开始设计界面。对于那些希望快速推出高效后台管理系统的团队来说,这样的资源是非常有价值的。

Global site tag (gtag.js) - Google Analytics