美文网首页凯哥Java-工作总结
使用java爬虫获取网络资源403错误解决

使用java爬虫获取网络资源403错误解决

作者: 凯哥Java | 来源:发表于2016-08-27 12:55 被阅读784次

    在做爬虫的时候,有时候需要下载爬到连接的URL

    比如:String url =“

    如果使用Filefile =newFile(url );

    发现file处理后成了:http:\www.kaigejava.com\uplode\pdf\xxxxx.pdf

    然后使用file的判断方法。提示获取不到。

    那么使用java的file对象怎么获取网络资源?

    代码如下:

    public class FileTests {

    public static void main(String args) throws Exception {

    StringfileName= "d96c6dcfda2559c5865db89388d28cbf.pdf";

    String fileUrl = "http://10.10.10.242:82/xxx/files/d96c6dcfda2559c5865db89388d28cbf.pdf";

    String downPath = "C:\\Users\\kaigejava\\Desktop\\xss";

    downUrlTxt(fileName,fileUrl,downPath);

    }

    public static void downUrlTxt(String fileName,String fileUrl,String downPath){

    File savePath = new File(downPath);

    if (!savePath.exists) {

    savePath.mkdir;

    }

    String urlname = fileUrl.split("/");

    int len = urlname.length-1;

    String uname = urlname[len];//获取文件名

    try {

    File file = new File(savePath+"/"+uname);//创建新文件

    if(file!=null && !file.exists){

    file.createNewFile;

    }

    OutputStream oputstream = new FileOutputStream(file);

    URL url = new URL(fileUrl);

    URLConnection uc ;

    uc = url.openConnection;

    uc.addRequestProperty("User-Agent",

    "Mozilla/4.0 (compatible; MSIE 6.0;WindowsNT 5.0)");

    uc.setDoInput(true);//设置是否要从 URL 连接读取数据,默认为true

    uc.connect;

    InputStream iputstream = uc.getInputStream;

    System.out.println("filesize is:"+uc.getContentLength);//打印文件长度

    bytebuffer=newbyte[4*1024];

    int byteRead = -1;

    while((byteRead=(iputstream.read(buffer)))!= -1){

    oputstream.write(buffer, 0, byteRead);

    }

    oputstream.flush;

    iputstream.close;

    oputstream.close;

    } catch (Exception e) {

    System.out.println("读取失败!");

    e.printStackTrace;

    }

    System.out.println("生成文件路径:"+downPath+fileName);

    }

    }

    下载提示:

    需要注意的:

    如果提示:Server returned HTTP response code: 403 forURL

    这个错误。

    有可能是服务器拒绝了java直接访问。

    所以需要使用下面选中的部分。伪装成浏览器请求。

    如下:

    百科:

    User-Agent:

    如果您觉得有用请分享给您的朋友。

    【欢迎关注微信公众号:凯哥java

    开心一刻:

    1、老师:“生铁是铁,熟铁是铁,铁锤一敲铁打铁。谁能对下联?” 小明:“男人是人,女人是人,床板一响人造人。” 老师:“滚出去!”

    2、老师:“都是一个老师教的,为什么人家就学得好呢?” 小明:“因为不是一个父母生的。” 老师:“滚出去!”

    3、初中开学典礼校长谈早恋。校长:早恋犹如青色的苹果,过早的品尝只会让你感到苦涩。 小明:苹果熟透了还能轮到我么。 校园:快滚,不然我开除你!

    4、老师:为什么鸡蛋是圆形的,不是方形的呢? 小明:老师,你有考虑过母鸡的感受吗? 老师!@#!@#

    相关文章

      网友评论

        本文标题:使用java爬虫获取网络资源403错误解决

        本文链接:https://www.haomeiwen.com/subject/kextettx.html