Java oracle直接从URL代码读取无法正常工作

Java oracle直接从URL代码读取无法正常工作,java,url,Java,Url,我正在学习如何通过java程序从网站下载图像和文件。下面的代码是从中复制的。这个程序应该显示所提供url中的html文件代码 引用自该网站:“当您运行该程序时,您应该可以在命令窗口中看到HTML命令和位于的HTML文件中的文本内容。” 我的问题是,它适用于某些网站,但不适用于interfacelift.com。它不会显示该网站的任何内容。我在想原因 import java.net.*; import java.io.*; public class URLReader { public stat

我正在学习如何通过java程序从网站下载图像和文件。下面的代码是从中复制的。这个程序应该显示所提供url中的html文件代码

引用自该网站:“当您运行该程序时,您应该可以在命令窗口中看到HTML命令和位于的HTML文件中的文本内容。”

我的问题是,它适用于某些网站,但不适用于interfacelift.com。它不会显示该网站的任何内容。我在想原因

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

public class URLReader {
public static void main(String[] args) throws Exception {

    URL oracle = new URL("http://interfacelift.com/");
    BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream()));

    String inputLine;
    while ((inputLine = in.readLine()) != null)
        System.out.println(inputLine);
    in.close();
}
}

我怀疑该网站拒绝向您发送任何内容,因为它不承认您正在使用web浏览器。有些网站不喜欢自动的网页刮取器,比如你的程序试图读取他们的网页,所以选择阻止他们

当我尝试使用Python发出相同的请求时,我得到了一个403禁止的错误。我想您的Java应用程序也会遇到同样的错误:

win32上的Python 2.7.3(默认值,2012年4月10日23:31:26)[MSC v.1500 32位(英特尔)] 有关详细信息,请键入“帮助”、“版权”、“信用证”或“许可证”。 >>>导入urllib2 >>>urllib2.urlopen(“http://interfacelift.com/)改为 回溯(最近一次呼叫最后一次): 文件“”,第1行,在 文件“C:\Python27\lib\urllib2.py”,第126行,在urlopen中 return\u opener.open(url、数据、超时) 文件“C:\Python27\lib\urllib2.py”,第406行,打开 响应=方法(请求,响应) 文件“C:\Python27\lib\urllib2.py”,第519行,在http\u响应中 “http”、请求、响应、代码、消息、hdrs) 文件“C:\Python27\lib\urllib2.py”第444行出错 返回自我。调用链(*args) 文件“C:\Python27\lib\urllib2.py”,第378行,在调用链中 结果=func(*args) 文件“C:\Python27\lib\urllib2.py”,第527行,默认为http\u error\u raise HTTPError(请求获取完整url(),代码,消息,hdrs,fp) urllib2.HTTPError:HTTP错误403:禁止
你所说的“…它有效”是什么意思。。。不适用于interfacelift.com?当然,不会在页面上执行与javascript相关的更改。引自该网站:“当您运行程序时,您应该看到,在您的命令窗口中滚动,HTML命令和位于的HTML文件中的文本内容。”您可以使用它模拟浏览器,甚至解释javascript。好的,谢谢大家。在遵循您的提示之后,我发现了它的原因,因为在创建URLconnection对象之后必须使用setRequestProperty,如:URL URL URL=new URL(“);URLconnection hc=URL.openConnection();hc.setRequestProperty(blabla等