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;
	}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值