怎么用java获取登陆百度后的网页?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么用java获取登陆百度后的网页?相关的知识,希望对你有一定的参考价值。
能不能用HttyURLConnection来操作,或者说怎么使用setRequestProperty?特别是Cookie的问题该怎么解决...或者借用浏览器的Cookie?
URL url = new URL("http://www.baidu.com/");HttpURLConnection huc = (HttpURLConnection) url.openConnection();然后关键是设置setRequestProperty这个可以借用浏览器,像IE、chrome、firefox都可以的
主要是理解和百度端的请求和回复....模拟浏览器的话,每次浏览器去获取一个url的时候,就会有一个Request头,这个头就会带有浏览器信息啊cookie啊等等比如说用chrome,可以用F12进入控制台,然后看下面的NetWork栏
比如进入百度的时候你点击第一个就会看到你浏览器和百度服务器间的请求文件了
你如果复制的话,就用setRequestProperty("Accept", "text/html,application/.....")这样一项一项去设置httpurlconnection的属性
cookie也是一样的
这样,设置完以后,在connect方法连接百度,返回的时候就是登陆以后的页面的,也就模拟了你的浏览器的登陆。如果你的浏览器是记住登陆状态的话,那复制下来的cookie也是有效的,你也能一样用java获取页面了其实用firefox、IE也是一样的。其实cookie也是本地保存的,你可以写个java从本地得到cookie然后进行访问
这个和mfc的webbrowser浏览差不多,那个会自动去模拟IE,使用IE的cookie等等。追问
好像可行?等等去试试
追答恩,你去试试,不懂可以追问,
参考技术A 不懂,不明觉厉以上是关于怎么用java获取登陆百度后的网页?的主要内容,如果未能解决你的问题,请参考以下文章
关于用python写的登陆程序,怎么获取cookie值并返回出来
JAVA--利用HttpClient模拟浏览器登陆请求获取响应的Cookie