⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 securitypolicy.java

📁 一个用java语言编写的网络爬虫程序
💻 JAVA
字号:
/* * WebSPHINX web crawling toolkit * Copyright (C) 1998,1999 Carnegie Mellon University  *  * This library is free software; you can redistribute it * and/or modify it under the terms of the GNU Library * General Public License as published by the Free Software  * Foundation, version 2. * * WebSPHINX homepage: http://www.cs.cmu.edu/~rcm/websphinx/ */package websphinx;import java.net.*;import java.io.*;import java.util.Vector;public class SecurityPolicy {    private File tempDir;    private Vector temps = new Vector ();    public SecurityPolicy () {        String tempDirName;                try {            tempDirName = System.getProperty ("websphinx.temp.directory");        } catch (SecurityException e) {            tempDirName = null;        }        if (tempDirName == null) {            String os = System.getProperty("os.name");            tempDirName = (os.startsWith ("Windows"))                            ? "c:\\temp\\"                            : "/tmp/";        }                if (!(tempDirName.endsWith ("/") ||              tempDirName.endsWith (File.separator)))            tempDirName += "/";                tempDir = new File (tempDirName);    }    public URLConnection openConnection (URL url) throws IOException {        URLConnection conn = url.openConnection ();        conn.connect ();        return conn;    }    public URLConnection openConnection (Link link) throws IOException {        // get the URL        int method = link.getMethod();        URL url;        switch (method) {            case Link.GET:                url = link.getPageURL();                break;            case Link.POST:                url = link.getServiceURL();                break;            default:                throw new IOException ("Unknown HTTP method " + link.getMethod());        }        // open a connection to the URL        URLConnection conn = url.openConnection ();        // set up request headers        DownloadParameters dp = link.getDownloadParameters ();        if (dp != null) {            conn.setAllowUserInteraction (dp.getInteractive ());            conn.setUseCaches (dp.getUseCaches ());            String userAgent = dp.getUserAgent ();            if (userAgent != null)                conn.setRequestProperty ("User-Agent", userAgent);            String types = dp.getAcceptedMIMETypes ();            if (types != null)                conn.setRequestProperty ("accept", types);        }        // submit the query if it's a POST (GET queries are encoded in the URL)        if (method == Link.POST) {//#ifdef JDK1.1             if (conn instanceof HttpURLConnection)                ((HttpURLConnection)conn).setRequestMethod ("POST");//#endif JDK1.1                        String query = link.getQuery ();            if (query.startsWith ("?"))                query = query.substring (1);            conn.setDoOutput (true);            conn.setRequestProperty ("Content-type",                                     "application/x-www-form-urlencoded");            conn.setRequestProperty ("Content-length", String.valueOf(query.length()));            // commence request//#ifdef JDK1.1             PrintStream out = new PrintStream (conn.getOutputStream ());//#endif JDK1.1/*#ifdef JDK1.0            PrintStream out = new PrintStream (conn.getOutputStream ());#endif JDK1.0*/            out.print (query);            out.flush ();        }        conn.connect ();        return conn;    }  public InputStream readFile (File file) throws IOException {    return new FileInputStream (file);  }  public OutputStream writeFile (File file, boolean append) throws IOException {    //#ifdef JDK1.1    return new FileOutputStream (file.toString(), append);    //#endif JDK1.1    /*#ifdef JDK1.0    if (append)        throw new IOException ("Can't append to files under JDK 1.0");    else        return new FileOutputStream (file.toString());    #endif JDK1.0*/          }    public RandomAccessFile readWriteFile (File file) throws IOException {        return new RandomAccessFile (file, "rw");    }        public void makeDir (File file) throws IOException {        file.mkdirs ();    }    public File getTemporaryDirectory () {        return tempDir;    }    public File makeTemporaryFile (String basename, String extension) {        File dir = getTemporaryDirectory ();        File f;        synchronized (temps) {            do                f = new File (dir,                              basename                              + String.valueOf ((int)(Math.random() * 999999))                              + extension);            while (temps.contains (f) || f.exists());            temps.addElement (f);        }        return f;    }    public void deleteAllTempFiles () {        synchronized (temps) {            for (int i=0; i<temps.size(); ++i) {                File f = (File)temps.elementAt(i);                f.delete ();            }            temps.setSize (0);        }    }  /*   * Global security policy   *   */  private static SecurityPolicy thePolicy = findPolicy ();  private static SecurityPolicy findPolicy () {    try {      String policyName = System.getProperty ("websphinx.policy");      if (policyName == null)        return new SecurityPolicy ();      else {        try {          Class cls = Class.forName (policyName);          return (SecurityPolicy)cls.newInstance ();        } catch (Throwable t) {          System.err.println ("websphinx.SecurityPolicy: cannot instantiate " + policyName);          System.exit (-1);          return null; // doesn't get here        }      }    }    catch (Throwable t) {      // assume we're running in a sandbox (like a Web browser)      String browserName;      try {          browserName = System.getProperty ("browser");      } catch (Throwable e) {          browserName = null;      }      if (browserName == null)          browserName = "";      String browserVersion;      try {          browserVersion = System.getProperty ("browser.version");      } catch (Throwable e) {          browserVersion = null;      }      if (browserVersion == null)          browserVersion = "";      if (browserName.startsWith ("Netscape")           && browserVersion.startsWith ("4."))        return new Netscape4Policy ();      else        return new SecurityPolicy (); // FIX: replace with BrowserPolicy that pops up dialog boxes    }  }    public static SecurityPolicy getPolicy () {        return thePolicy;    }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -