`
flashdream8
  • 浏览: 680436 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

httpclient4 抓取 防盗链的图片

 
阅读更多

 

写了一个爬虫需要抓取某个网站的相关信息,文字信息都没有问题,但是 图片信息对方网站使用了防盗链技术,抓取图片的时候出现 403 错误

最后进过各种尝试终于成功

上代码,以备以后查看

 

	public static String getHttpPicToCS(String url, String picid)
			throws Exception {
		String str = "";
		HttpClient client = new DefaultHttpClient();
		int code = 0;
		HttpGet httpGet = new HttpGet(url);
		InputStream in = null;
		try {
			long t1 = System.currentTimeMillis();
			// 设置连接超时时间(单位毫秒)
			httpGet.getParams().setParameter(
					CoreConnectionPNames.CONNECTION_TIMEOUT,
					HTTPCLIENT_CONNECTION_TIMEOUT);
			httpGet.setHeader("Referer", url);  // 专门应对防盗链 url 可以写对方网站url
			// 设置读数据超时时间(单位毫秒)
			httpGet.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT,
					HTTPCLIENT_SO_TIMEOUT);
			httpGet.getParams().setParameter("User-Agent","Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Win64; x64; Trident/5.0)"	);
			HttpResponse response = client.execute(httpGet);
			HttpEntity entity = response.getEntity();
			code = response.getStatusLine().getStatusCode();
			if (code == 200 && entity != null) {
				in = entity.getContent();
				str = UpdateFile.updateFile(in, picid);
				logger.info("str=" + str);
			} else {
				httpGet.abort();
				return null;
			}
			long t2 = System.currentTimeMillis();
			long to = t2 - t1;
			logger.info("---HttpUtil---url:" + url + " , time:" + to
					+ " ms , code:" + code);
		} catch (Exception e) {
			logger.error("------HttpUtil-----error--url:" + url + "  , "
					+ e.getMessage());
			throw e;
		} finally {
			if(in!=null)
				in.close();
			httpGet.releaseConnection();
			client.getConnectionManager().shutdown();
		}
		return str;
	}

 

分享到:
评论

相关推荐

    Java爬虫小例子,爬取小网站,突破防盗链下载图片

    这个"Java爬虫小例子"项目展示了如何利用Java来爬取小型网站,特别是那些有防盗链保护的图片资源。防盗链是网站为了防止其他网站直接引用其服务器上的资源而采取的一种防护措施。下面我们将深入探讨相关的知识点。 ...

    HttpClient网页抓取工具包整合

    HttpClient是Apache软件基金会的一个开源项目,它提供了一个强大的、高度可定制...通过提供的 httpClient网页抓取工具整合包,你可以快速地搭建起一个基本的网页抓取框架,进一步深入学习和实践HttpClient的各项功能。

    HttpClient抓取网页Demo

    在本文中,我们将深入探讨HttpClient的基本用法,以及如何使用它来抓取网页内容。 首先,你需要在项目中引入HttpClient的依赖。如果你使用的是Maven,可以在pom.xml文件中添加以下依赖: ```xml <groupId>org....

    httpClient+jsoup 抓取网页数据

    4. **结合HttpClient和Jsoup抓取网页数据**: - 使用HttpClient发送HTTP请求,获取网页的HTML内容。 - 将HttpClient获取的HTML内容传递给Jsoup的parse方法,得到Document对象。 - 利用Jsoup的CSS选择器和数据提取...

    java httpclient 抓取 数据 和jar 包

    在本篇文章中,我们将深入探讨如何使用Java HttpClient来抓取网页数据以及如何打包成jar文件。 **一、Java HttpClient简介** Java HttpClient 是 Apache HttpClient 库的一部分,它提供了丰富的功能,包括连接管理...

    httpClient+jsoup抓取网页数据实例和jar包

    本教程将详细介绍如何结合使用HttpClient与Jsoup来抓取和处理网页数据。 HttpClient是Apache基金会开发的一个开放源代码库,它允许开发者发送HTTP请求并接收响应,支持多种HTTP协议版本。HttpClient提供了丰富的...

    HttpClient 3.x to HttpComponents HttpClient 4.x

    随着技术的发展,从早期的HttpClient 3.x版本迁移到更新的HttpComponents HttpClient 4.x版本是一个常见的需求。这不仅仅是一个简单的升级过程,而是涉及到对API的变化、编程模型的更新以及对网络编程的更深层次理解...

    httpclient4

    - **网页抓取**:HttpClient 可用于抓取网页内容,进行网页分析或数据提取。 - **API调用**:对于RESTful API,HttpClient 是一个理想的客户端工具,可以方便地发送JSON或XML数据。 - **文件上传下载**:通过POST...

    httpClient4 最新帮助文档

    最新帮助文档通常会涵盖HttpClient 4的主要功能、用法、配置、异常处理以及最佳实践。以下是对HttpClient 4的一些关键知识点的详细解释: 1. **基本概念**: - HttpClient:HttpClient是客户端HTTP服务端点的抽象...

    使用HttpClient下载图片

    HttpURLConnection与HttpClient的区别: HttpClient是个很不错的开源框架(org.appache.http),封装了访问http的请求头,参数,内容体,响应等等,使用起来更方面更强大。 HttpURLConnection是java的标准类,可以...

    httpClient连接https 获得验证码图片示例

    httpClient连接https 获得验证码图片示例 需要证书才能连接的那种 /* 本文所用开发工具 jak1.5.0_06 eclipse:ObjectWeb Lomboz lib: commons-codec-1.4.jar commons-logging-1.1.jar httpclient-4.0.3.jar ...

    HttpClient 4 - 文件上传

    HttpClient 4 版本引入了许多改进,使得文件上传变得更加简单和高效。在这个主题中,我们将深入探讨HttpClient 4如何实现文件上传,以及相关的核心概念和技术。 首先,我们需要了解HttpClient 4的基本用法。...

    HttpClient4模拟登录回贴

    HttpClient4适用于各种场景,如自动化测试、数据抓取等,它允许开发者构建复杂的HTTP交互逻辑。 首先,我们要了解HttpClient4的基本用法。HttpClient4的核心类包括HttpClient、HttpGet、HttpPost、...

    httpclient 4.X版本下载有的带源码包

    2013-11-21 15:31 292,890 httpclient-4.0.2.jar 2017-12-20 12:08 351,132 httpclient-4.1.1.jar 2012-08-03 01:45 451,595 httpclient-4.1.2-sources.jar 2012-08-03 01:44 352,254 httpclient-4.1.2.jar 2012-08-...

    httpClient4jar包

    在描述中提到的“httpclient4”,指的是HttpClient 4.x系列,这是一个稳定且广泛使用的版本。 在HttpClient 4.4.1.jar中,包含了HttpClient的主要功能实现,如HTTP方法(GET, POST等)、连接管理、重定向处理、身份...

    httpClient 4.1.3 获取css中图片

    httpClient 4.1.3 获取css中图片 java源代码 分享给各位 想下载css中的图片 还可以用来学习httpClient 里面含有httpClient4的jar包,还用了swing的好看的主题。

    HttpClient网络获取图片

    从网络获取数据和图片,用gson解析并用listview展示

    HttpClient 网络抓取

    HttpClient是网络抓取和自动化测试的重要工具,尤其在需要与Web服务器进行交互时。 在HttpClient中,`HttpURLConnection`是一个基础的网络连接类,它允许应用程序通过URL来创建网络连接。然而,HttpClient提供了更...

Global site tag (gtag.js) - Google Analytics