Jsoup 解析网页报异常

cuiyang_0227 2013-07-30 06:09:11
我采用的是多线程解析网页信息,当解析一定时间之后
就会报
Connection reset或者read time out错误,
我的代码是
Document doc = Jsoup.connect(url).timeout(3000).userAgent("Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0")).get();

异常是
java.net.SocketException: Connection reset
请高手帮我分析分析
应该如何解决
...全文
976 15 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
大人物小孩子 2014-11-16
  • 打赏
  • 举报
回复
Document doc=null; org.jsoup.Connection conn = Jsoup.connect(url); conn.timeout(5000); doc = conn.get(); 设置一下
cuiyang_0227 2014-07-04
  • 打赏
  • 举报
回复
引用 12 楼 jacal1 的回复:
setTimeOut时间长一点
有段时间没做那个项目了,记得当时最后是把settimeout设置大了些之后,能好一点点,不过在多次解析的时候,还是时不时会出现问题。
xiaxuewuhen001 2014-06-11
  • 打赏
  • 举报
回复
还是用httpclient 然后在用jsoup解析吧
学到了吗 2014-03-24
  • 打赏
  • 举报
回复
setTimeOut时间长一点
听枫叶飘 2013-12-02
  • 打赏
  • 举报
回复
11.避免URL重定向。URL redirects are made using HTTP status codes 301 and 302. They tell the browser to go to another location.
cuiyang_0227 2013-08-26
  • 打赏
  • 举报
回复
引用 9 楼 sd4000784 的回复:
[quote=引用 7 楼 cuiyang_0227 的回复:] [quote=引用 4 楼 zyrobert 的回复:] 不是什么网站你都能连接的 有些网站的反爬虫做得好 不让你用代码这么连
那怎么能看出来哪个网站让爬 哪个网站不让爬呢? 有些画面我在解析的时候报302 是不是就意味着不让爬呢?[/quote] 你需要从重定向的header里去获取location的新地址[/quote] 我调查了 这个在基类里已经处理过,如果出现302的问题 会获取location的新地址,但是还是会报302的问题。
  • 打赏
  • 举报
回复
引用 7 楼 cuiyang_0227 的回复:
[quote=引用 4 楼 zyrobert 的回复:] 不是什么网站你都能连接的 有些网站的反爬虫做得好 不让你用代码这么连
那怎么能看出来哪个网站让爬 哪个网站不让爬呢? 有些画面我在解析的时候报302 是不是就意味着不让爬呢?[/quote] 你需要从重定向的header里去获取location的新地址
  • 打赏
  • 举报
回复
引用 7 楼 cuiyang_0227 的回复:
[quote=引用 4 楼 zyrobert 的回复:] 不是什么网站你都能连接的 有些网站的反爬虫做得好 不让你用代码这么连
那怎么能看出来哪个网站让爬 哪个网站不让爬呢? 有些画面我在解析的时候报302 是不是就意味着不让爬呢?[/quote] 302是重定向
cuiyang_0227 2013-08-23
  • 打赏
  • 举报
回复
引用 4 楼 zyrobert 的回复:
不是什么网站你都能连接的 有些网站的反爬虫做得好 不让你用代码这么连
那怎么能看出来哪个网站让爬 哪个网站不让爬呢? 有些画面我在解析的时候报302 是不是就意味着不让爬呢?
cuiyang_0227 2013-08-23
  • 打赏
  • 举报
回复
引用 5 楼 longtian1213 的回复:
估计应该是你多线程没写好! 先跑单线程试试!
如果在超时的时候 在catch里边让线程暂停几秒钟 之后再联接的话,超时的次数就能少点,但是当所有的线程运行的时间长点的情况,还是会一直报异常。 老板要求用多线程 因为数据量太大,如果用单线程的话 运行时间就有点太长了
S117 2013-08-06
  • 打赏
  • 举报
回复
估计应该是你多线程没写好! 先跑单线程试试!
zyrobert 2013-08-06
  • 打赏
  • 举报
回复
不是什么网站你都能连接的 有些网站的反爬虫做得好 不让你用代码这么连
cuiyang_0227 2013-07-31
  • 打赏
  • 举报
回复
引用 2 楼 fangmingshijie 的回复:
.timeout(3000)去掉
不行啊 去掉之后运行还是会报 java.net.SocketTimeoutException: Read timed out
  • 打赏
  • 举报
回复
.timeout(3000)去掉
cuiyang_0227 2013-07-30
  • 打赏
  • 举报
回复
求各位大神帮们 回帖就送分!

67,550

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧