文档章节

获取网页源代码的工具类

况石勇
 况石勇
发布于 2016/09/27 15:33
字数 218
阅读 3
收藏 0

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.Date;

public class HtmlParserUtil {
     public static String getHtmlContent(URL url, String encode) {  
            StringBuffer contentBuffer = new StringBuffer();  
      
            int responseCode = -1;  
            HttpURLConnection con = null;  
            try {  
                con = (HttpURLConnection) url.openConnection();  
                con.setRequestProperty("User-Agent", "Mozilla/4.0 (compatible; MSIE 5.0; Windows NT; DigExt)");// IE代理进行下载
                con.setRequestProperty("X-Requested-With", "XMLHttpRequest");
                con.setConnectTimeout(60000);  
                con.setReadTimeout(60000);  
                // 获得网页返回信息码  
                responseCode = con.getResponseCode();  
                System.out.println(responseCode);
                if (responseCode == -1) {  
                    System.out.println(url.toString() + " : connection is failure...");  
                    con.disconnect(); 
                    return null;  
                }  
                if (responseCode >= 400) // 请求失败  
                {  
                    System.out.println("请求失败:get response code: " + responseCode);  
                    con.disconnect();  
                    return null;  
                }  
      
                InputStream inStr = con.getInputStream();  
                InputStreamReader istreamReader = new InputStreamReader(inStr, encode);  
                BufferedReader buffStr = new BufferedReader(istreamReader);  
      
                String str = null;  
                while ((str = buffStr.readLine()) != null)  
                    contentBuffer.append(str);  
                inStr.close();  
            } catch (IOException e) {  
                e.printStackTrace();  
                contentBuffer = null;  
                System.out.println("error: " + url.toString());  
            } finally {  
                con.disconnect();  
            }  
            return contentBuffer.toString();  
        }  
      
        public static String getHtmlContent(String url, String encode) {  
            if (!url.toLowerCase().startsWith("http://")) {  
                url = "http://" + url;  
            }  
            try {  
                URL rUrl = new URL(url);  
                return getHtmlContent(rUrl, encode);  
            } catch (Exception e) {  
                e.printStackTrace();  
                return null;  
            }  
        }  
        
        public static String getURL(String express,String expressno){ 
            Date date=new Date();
            long time =date.getTime()*1000;
            String list=  getHtmlContent("http://www.kuaidihelp.com/newauto2/ajaxliuzhuan?n="+time+"&expressno="+expressno+"&express="+express,"utf-8") ;
            return list; 
                 
        }  
}
 

© 著作权归作者所有

共有 人打赏支持
况石勇
粉丝 0
博文 2
码字总数 274
作品 0
武汉
程序员
私信 提问
android获取网页数据(工具类)

该类为获取网页源代码的工具类,为了方便日后减少代码的编写量,写了这个工具类可以随时调用 该类返回的是一个网站的全部源码String类型,可以直接数据,也可以直接打印。 —————————...

黄柳淞
2016/11/26
11
0
使用 nodejs 写爬虫(二): 抓取 github 热门项目

其实爬虫是一个对计算机综合能力要求比较高的技术活。 首先是要对网络协议尤其是 协议有基本的了解, 能够分析网站的数据请求响应。学会使用一些工具,简单的情况使用 chrome devtools 的 ne...

lyreal666
04/05
0
0
Python爬虫:用BeautifulSoup进行NBA数据爬取

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_25819827/article/details/70158738 爬虫主要就是要过滤掉网页中无用的信息,抓取网页中有用的信息 一般的...

night李
2017/04/13
0
0
如果你正在对Python爬虫蠢蠢欲动? 那么我现在带你彻底了解它!

1. 爬虫概述 简单来说,爬虫就是获取网页并提取和保存信息的自动化程序,下面概要介绍一下。 (1) 获取网页 (2) 提取信息 获取网页源代码后,接下来就是分析网页源代码,从中提取我们想要的数...

Python新世界
2018/08/07
0
0
Python老司机手把手带你写爬虫,整站下载妹子图,一次爽个够!

其实很多编程语言都可以做爬虫,例如java、c#、php等等甚至excel都可以抓网页的图表,那么为什么我们要用Python呢?它简单、便捷,而且有好多库可以选择,可以说python是写爬虫的首选了! 今...

python玩家
2018/07/14
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Confluence 6 升级中的一些常见问题

升级的时候遇到了问题了吗? 如果你想尝试重新进行升级的话,你需要首先重新恢复老的备份。不要尝试再次对 Confluence 进行升级或者在升级失败后重新启动老的 Confluence。 在升级过程中的一...

honeymoose
今天
2
0
C++随笔(四)Nuget打包

首先把自己编译好的包全部准备到一个文件夹 像这样 接下来新建一个文本文档,后缀名叫.nuspec 填写内容 <?xml version="1.0"?><package xmlns="http://schemas.microsoft.com/packaging/201......

Pulsar-V
今天
2
0
再谈使用开源软件搭建数据分析平台

三年前,我写了这篇博客使用开源软件快速搭建数据分析平台, 当时收到了许多的反馈,有50个点赞和300+的收藏。到现在我还能收到一些关于dataplay2的问题。在过去的三年,开源社区和新技术的发...

naughty
今天
13
0
Python3的日期和时间

python 中处理日期时间数据通常使用datetime和time库 因为这两个库中的一些功能有些重复,所以,首先我们来比较一下这两个库的区别,这可以帮助我们在适当的情况下时候合适的库。 在Python文...

编程老陆
今天
2
0
分布式面试整理

并发和并行 并行是两个任务同时进行,而并发呢,则是一会做一个任务一会又切换做另一个任务。 临界区 临界区用来表示一种公共资源或者说是共享数据,可以被多个线程使用,但是每一次,只能有...

群星纪元
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部