关于HttpURLConnection抓取数据502异常问题

问题描述

描述:我想连续抓取2000多组天气数据存储在文件中,使用代理IP和端口号,利用HttpURLConnection获取网络接口数据。问题:[b]1.单个抓取每一组数据都没有问题;2.抓取过程中间断开的地方每次不一样,有抓100多组数据后断开的也有1000多组后断开的;3.程序报异常:java.io.IOException:ServerreturnedHTTPresponsecode:502forURL:http://open.weather.com.cn/data/?areaid=101031400&type=forecast3d&date=201409110939&..................................但是URL是没问题的,每次断开地方也不一样。4.是否是网络原因导致中断?如果不能保证网络怎么能加强程序健壮性,让每次断开后还能继续抓取,直至2000多组数据抓取完毕?求指教~部分代码如下:(原来比这些简化,也没用post,后来看网上说的一步步加了一些setDoOutput、setDoInput、setConnectTimeout之类的,还是不行)[/b]publicStringgetURLContent(StringurlStr,Stringencode)throwsException{if(isProxyEnabled){Propertiesprop=System.getProperties();prop.setProperty("http.proxyHost",proxyHost);prop.setProperty("http.proxyPort",proxyPort);}URLurl=newURL(urlStr);HttpURLConnectionhttpConn=(HttpURLConnection)url.openConnection();httpConn.setDoOutput(true);httpConn.setDoInput(true);httpConn.setUseCaches(false);httpConn.setRequestMethod("POST");httpConn.setInstanceFollowRedirects(true);httpConn.connect();httpConn.setConnectTimeout(3000);httpConn.setReadTimeout(3000);DataOutputStreamout=newDataOutputStream(httpConn.getOutputStream());out.flush();out.close();//OutputStreamoutStrm=httpConn.getOutputStream();BufferedReaderbufReader;StringBuildercontentBuf=newStringBuilder(1024*100);try{bufReader=newBufferedReader(newInputStreamReader(httpConn.getInputStream(),encode));Stringline="";while((line=bufReader.readLine())!=null){contentBuf.append(line);}bufReader.close();}catch(Exceptione){e.printStackTrace();}httpConn.disconnect();returnnewString(contentBuf);}

解决方案

解决方案二:

解决方案三:
我也遇取天气的问题,有牛人帮忙解决一下么

时间: 2024-12-27 08:21:00

关于HttpURLConnection抓取数据502异常问题的相关文章

使用Scrapy抓取数据

Scrapy是Python开发的一个快速,高层次的屏幕抓取和web抓取框架,用于抓取web站点并从页面中提取结构化的数据.Scrapy用途广泛,可以用于数据挖掘.监测和自动化测试. 官方主页: http://www.scrapy.org/ 中文文档:Scrapy 0.22 文档 GitHub项目主页:https://github.com/scrapy/scrapy Scrapy 使用了 Twisted 异步网络库来处理网络通讯.整体架构大致如下(注:图片来自互联网): Scrapy主要包括了以下

jsoup ip封锁-jsoup 抓取数据如何解决 IP封锁

问题描述 jsoup 抓取数据如何解决 IP封锁 jsoup 抓取 数据 如何 解决 爬取 网站 的 IP封锁 解决方案 使用Jsoup 异步抓取页面的数据使用jsoup从网站抓取数据使用Jsoup抓取数据 解决方案二: 这你得看对方网站的反爬虫机制了,不同的网站反爬虫机制不同

百度无法解析用户域名 抓取压力图异常

IDC评述网09月24日报道:据网友爆料,近一周,百度接连出现无法解析用户域名的情况,目前西部数码.DNSPOD.万网等域名服务商都接到不少域名用户反馈. 图一:百度无法解析用户域名邮件通知 图二:百度无法解析用户域名 抓取压力图异常 从上述图二中,可清晰看到从9月20号左右,百度抓取压力图开始出现异常,目前具体多少域名解析受此影响,未有准确统计,百度官方也未出相关公告.

利用Jsoup解析网页及抓取数据的简单应用

最近一直在公司利用爬虫技术,去抓取一些网页查询网站备案信息,刚开始使用HttpClient 和 jericho (这两个也挺好用你可以去测试一下).但是后来发现了Jsoup,他和Jquery很相似,在搜节点上使用的技术几乎相似.所以凡是使用过Jquery的都可以去尝试使用Jsoup去解析抓取数据.下面举个例子我们去抓去所有公交车的信息(哥是郑州的哈). 在解析之前你需要jar包,你可以去http://jsoup.org/直接下载.如果使用maven更方便 只需引进依赖 例如 <dependenc

从网页抓取数据的一般方法

首先要了解对方网页的运行机制 ,这可以用httpwacth或者httplook来看一下http发送和接收的数据.这两个工具应该说是比较简单易懂的.这里就不再介绍了.主要关注的内容是header和post的内容.一般会包括cookie,Referer页面和其他一些乱其八糟可能看不懂的变量,还有就是正常交互的参数,比如需要post或者get的querystring所包含的东西. httplook和httpwacth网上有很多下载的,这里推荐使用httpwach,因为可以直接嵌入到ie中,个人觉得这个

ajax-php采集高手进:利用curl模拟登录抓取数据遇到json调用问题不成功,求助!

问题描述 php采集高手进:利用curl模拟登录抓取数据遇到json调用问题不成功,求助! 我在抓取一个页面的信息(假设a.php),这个页面只是一些基本的html框架,其他关键信息是通过ajax请求(b.php)回来的,返回的是json,然后在通过页面js将json解析,绘制到页面上.问题的关键是ajax请求的信息里有个手机号码需要登录后才显示完整,原网站利用ajax请求b.php获得json数据,如果直接访问b.php也是可以直接得到:{"name":"zhangsan&

php 模拟手机访问页面并抓取数据

问题描述 php 模拟手机访问页面并抓取数据 $ch = curl_init(); $timeout = 0; curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'User-Agent: Mozilla/5.0 (iPhone; CPU iPhone OS 8_0 l

源代码乱码问题-抓取数据乱码,不是编码问题

问题描述 抓取数据乱码,不是编码问题 我用WebClient抓取搜房网的数据:http://esf.sh.soufun.com/house/ ,获取到的都是乱码,我确定不是编码问题,几种编码都实验过,确定编码是gb2312.求教各位大哥大姐,怎么能获取的正确的源代码 解决方案 我靠,这是非法的,就是知道也不敢说啊.

httpwebrequest网页抓取数据乱码

问题描述 httpwebrequest网页抓取数据乱码 protected void Page_Load(object sender, EventArgs e) { string url = "http://www.veryzhun.com/planenumber.html"; string strall = HttpGet(url); //string srr1 = GetHtmlFromGet(url,Encoding.GetEncoding("gb2312")