输入url在浏览器能看到数据,用java程序获取不到

21zerospace 2015-12-30
输入url在浏览器能看到后台返回的json格式数据,用java程序获取不到。使用com.gargoylesoftware.htmlunit.WebClient 和 org.jsoup.Jsoup 都返回{"error_description":"遇到错误,请刷新页面或者重新登录帐号后再试","error_uri":"/***/***/***.json","error_code":"400016"}。怎么破?
21zerospace 2015-12-31
m635674608 2015-12-31
没有那么简单的,多了解下http协议
21zerospace 2015-12-31
m635674608 写道
没有那么简单的,多了解下http协议

我觉得跟http协议没关系吧。。。
xsd_旧 2016-01-03
用HttpClient试试
happysoul 2016-01-05
都写着了 要登录 你浏览器登录不代表java也会帮你登录
cookie或者模拟登录信息什么的你写了么?
yuntui 2016-01-12
21zerospace 写道
输入url在浏览器能看到后台返回的json格式数据,用java程序获取不到。使用com.gargoylesoftware.htmlunit.WebClient 和 org.jsoup.Jsoup 都返回{"error_description":"遇到错误,请刷新页面或者重新登录帐号后再试","error_uri":"/***/***/***.json","error_code":"400016"}。怎么破?

bewithme 2016-01-12
你不会登录啊
kehui 2016-01-19
首先,你要理解爬虫,爬虫也要遵守规则来做事,它不是木马,也不是网络强盗。既然目标网站的内容,需要登录才能抓取,那你当然需要有一个签名回执给服务器,告诉它你是登录账户。
你要想想,如果是你自己做目标网站,一个网页,原本需要登录才能查看的,而用户未登录,直接输入了一个用户中心的URL到浏览器上,你作为开发,你会怎么做?当然是重定向到登录页面让用户登录啦。
所以,问题已经是这样了,要怎么解决呢?
有个很简单的办法,你手动登录,然后将登录完成后的jsessionid(不一定是这个,但一定有一个签名)放到你请求的client cookie里去,jsoup有一个setCookie方法的,一般的网站,只要一个jsessionid就行了,如果一个不行,你就把所有的cookie全部设进去,再试,一般是没问题的。
yuntui 2016-03-12
21zerospace 写道
输入url在浏览器能看到后台返回的json格式数据,用java程序获取不到。使用com.gargoylesoftware.htmlunit.WebClient 和 org.jsoup.Jsoup 都返回{"error_description":"遇到错误,请刷新页面或者重新登录帐号后再试","error_uri":"/***/***/***.json","error_code":"400016"}。怎么破?

Global site tag (gtag.js) - Google Analytics