呵呵,要在某网站上拿数据下来,但是要登录该网站之后才能看到我需要的数据(因为该网站编了码,不知道是什么编码,很长一串),如何用java 去模拟这个登录?然后登录之后又要跳过几个页面才到我要去的页面,这个又怎么解决?这个问题我想是很难了吧?我CSDN混了几个月来,第一次问问题!请大家帮忙想想办法……

解决方案 »

  1.   

    不知道楼主说的模拟登陆时什么样子,是按照网站规定的格式发送用户名和密码就可以了吗?
    如果是那样,可以用Java直接发送HTTP Get/Post请求给网站。还有,“因为该网站编了码,不知道是什么编码,很长一串”什么意思,请说明的更详细一些
      

  2.   

    需要一个磨练的过程,每个网站的登陆方法千差万别,但是最终的目的都可以实现,只是登陆的方法不一样。
    首先要分析http数据,还是先找个抓取封包的工具。没有工具怎么做事?
      

  3.   

    我现在用sniffer partable抓取封包,而至于那个编码我说不清楚,就贴上来了:<input type="hidden" name="__VIEWSTATE" value="dDwxMzM5OTkzMjE2O3Q8O2w8aTwxPjs+O2w8dDw7bDxpPDExMz47PjtsPHQ8cDxwPGw8VGV4dDtWaXNpYmxlOz47bDznrKzkuIDkuKrlj5HoqIA7bzx0Pjs+Pjs+Ozs+Oz4+Oz4+Oz5p5eaRQenqvN+VO/gpjokwYcmvmQ==" />
    现在自己还在想办法……
      

  4.   

    晕哦,csdn的,这样不太好吧,给我留言。
      

  5.   

    這個網站是使用asp.net製作的,你提到的那個hidden字段是葉面的VIEWSTATE裏面保存的實際是葉面上控件的狀態和屬性值,應該和你要提取的數據關係不大,不過也有人將一些重要數據儲存在Viewstate之中
      

  6.   

    java里面可以直接执行http请求的,当然要知道参数及其值!按照地址值中的请求字符串去请求执行就可以得到结果.
    也可以用httpunit组件来解决,这个组件是开源的,就是用来模拟网页的提交动作的,完全可以用java来操作一系列网页提交动作.看看相关API就知道了.