本帖最后由 wo6925371 于 2013-01-15 20:09:19 编辑

解决方案 »

  1.   

    最实在的方法是直接致信其官方要求公开数据调用API
      

  2.   


    这个方法着实好,不过可不可以通过解析这个HTML来找到一个方法获取数据呢??
      

  3.   


    这个URL很隐蔽的,根本找不到
      

  4.   

    兄弟不要随便说找不到,12306所有请求都能找到,你用HttpAnalyzer抓抓看没有找不到的URL请求。
      

  5.   


    jquery什么的也可以看到??您看一下呗看过网站再说好吗。
      

  6.   

    DOTA?这个如果他用图片显示呢。不同的网页,数据会有不同的显示形式,你需要对每一个网页都进行不同的解析,你抓取的数据有什么特点?这种要求精确的数据捕获,应该没有统一的方法吧。
      

  7.   

    网页给你搞出来了,但是它有很多验证用的..我不知道怎么用,不保证这个长期都能用..public static void main(String[] args) throws Exception {
    URL url = new URL("http://dotazj.uuu9.com/");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    String name = URLEncoder.encode("官人可以不", "utf-8");
    System.out.println(name);
    connection
    .getOutputStream()
    .write(
    ("__VIEWSTATE=%2FwEPDwUKLTc0MDM2OTU4MQ9kFgICAQ9kFhgCGw8WAh4JaW5uZXJodG1sBT7lpKnmoq%2FlvpfliIbvvJowICZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IOmJtOWumue7k%2BaenO%2B8muaWsOaJi%2BOAgmQCHQ8WAh8ABRLlnKjmlrDmiYvph4zpnaLvvJpkAh8PFgIfAAVH5bmz5Z2H5b6X5YiG77yaMC42ODggJmd0OyZndDsmZ3Q7Jmd0OyZndDsg6Ym05a6a57uT5p6c77yaQUnpnIDopoHkvaDvvIFkAiEPFgIfAAVu5b2x5ZON5q%2BU6LWb55qE6IOc6LSf55qE5qaC546H77yaMjUuMDAwJSAmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyDpibTlrprnu5PmnpzvvJrlgbblsJTog73miJDkuLrmr5TotZvnmoTlhbPplK7vvIFkAiMPFgIfAAU85pyA5Zac5qyi5YGa55qE5LqL5oOF5piv77ya5ouG6buR5LiT5Lia5oi377yM5q275b6X5YW25omA77yBZAIlD2QWFAIBD2QWFGYPFgIfAAUM5pK85Zyw56We54mbZAIBDxYCHwAFATRkAgIPFgIfAAUBMGQCAw8WAh8ABQEwZAIEDxYCHwAFATBkAgUPFgIfAAUBMGQCBg8WAh8ABQEwZAIHDxYCHwAFATFkAggPFgIfAAUBMWQCCQ8WAh8ABQQwLjc1ZAICD2QWFGYPFgIfAAUM5Zec6KGA54uC6a2UZAIBDxYCHwAFATRkAgIPFgIfAAUBMGQCAw8WAh8ABQEwZAIEDxYCHwAFATBkAgUPFgIfAAUBMGQCBg8WAh8ABQEwZAIHDxYCHwAFATBkAggPFgIfAAUBMWQCCQ8WAh8ABQMwLjVkAgMPZBYUZg8WAh8ABQbmspnnjotkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQExZAIJDxYCHwAFATJkAgQPZBYUZg8WAh8ABRLlpaXmnpfljLnmlq%2FkuYvnjotkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQExZAIJDxYCHwAFATJkAgUPZBYUZg8WAh8ABQzngbXprYLlrojljatkAgEPFgIfAAUBMmQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgYPZBYUZg8WAh8ABQbliZHlnKNkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgcPZBYUZg8WAh8ABQ%2FlnLDnsr7kv67ooaXljKBkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAggPZBYUZg8WAh8ABQbmlqfnjotkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgkPZBYUZg8WAh8ABQzmmpflvbHokKjmu6FkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgoPZBYUZg8WAh8ABQnpo47ooYzogIVkAgEPFgIfAAUCMzRkAgIPFgIfAAUBNGQCAw8WAh8ABQEyZAIEDxYCHwAFATBkAgUPFgIfAAUBNGQCBg8WAh8ABQE2ZAIHDxYCHwAFATlkAggPFgIfAAUBNGQCCQ8WAh8ABQQxLjIxZAInDxYCHwAFSuacgOWWnOasoueUqOeahOiLsembhO%2B8muaSvOWcsOelnueJmyDigJTigJQg5pyA5LiN5Zac5qyi55qE6Iux6ZuE77ya5rKZ546LZAIpDxYCHwAFNeacgOaThemVv%2BeahOiLsembhO%2B8miDigJTigJQg5pyA5LiN5pOF6ZW%2F55qE6Iux6ZuE77yaZAIrDxYCHwAFVue7vOWQiOW%2Bl%2BWIhuacgOmrmOeahOiLsembhO%2B8muaymeeOiyDigJTigJQg57u85ZCI5b6X5YiG5pyA5L2O55qE6Iux6ZuE77ya54G16a2C5a6I5Y2rZAItDxYCHwAFQuS9v%2BeUqOS4i%2BWIl%2BiLsembhOWkqeair%2Benr%2BWIhuWinuWKoOacgOW%2Fq%2BS9huWHj%2BWIhumjjumZqei%2Bg%2BWkp%2B%2B8mmQCLw8WAh8ABULkvb%2FnlKjkuIvliJfoi7Hpm4TlpKnmoq%2Fnp6%2FliIblop7liqDmnIDlv6vkvYblh4%2FliIbpo47pmanovoPlsI%2FvvJpkAjEPFgIfAAU25L2%2F55So5LiL5YiX6Iux6ZuE5aSp5qKv56ev5YiG5q%2Br5peg5Y6L5Yqb5omT6YWx5rK577yaZGTLf6CYjKrP%2Bpofue4IvsSg3Ldx6w%3D%3D&__EVENTVALIDATION=%2FwEWDgKdzPG2BgL7uPQdArursYYIApOixrIJArqP2b0HAp2ilpYPAtO31N4HAp3hgG0CgZLB4wgCgpLB4wgCgJLB4wgC95HB4wgC9pHB4wgC%2FpGB5AgcHU9R9yFzs%2FdyHJRv78I%2Fhyul3A%3D%3D&name="
    + name +"&Button2=%E9%89%B4%E5%AE%9A%E7%8E%A9%E5%AE%B6&ladderRating=0&jushu=0&win=0&p_win=0&mvp=0&resv6=0&resv5=0&resv7=0&resv8=0&resv9=1&resv10=4"
    ).getBytes());
    connection.getOutputStream().flush();
    connection.getOutputStream().close();
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    connection.getInputStream(), "utf-8"));
    String str = null;
    while ((str = reader.readLine()) != null) {
    System.out.println(str);
    }
    reader.close();
    }这个能把你当前英雄的网页数据读出来,我试了20分钟都还行,不知道它的验证码之类的会不会过期..过期了你自己抓抓看
      

  8.   

                                    战绩一览</div>
                                <div class="recordco">
                                    <ul>
                                        <li>
                                            <p>
                                                天梯积分:</p>
                                            <input name="ladderRating" type="text" id="ladderRating" class="text2" value="1445" /></li>
                                        <li>
                                            <p>
                                                局数:</p>
                                            <input name="jushu" type="text" id="jushu" class="text2" value="1555" /></li>
                                        <li>
                                            <p>
                                                胜场:</p>
                                            <input name="win" type="text" id="win" class="text2" value="785" /></li>
                                        <li>
                                            <p>
                                                胜率:</p>
                                            <input name="p_win" type="text" id="p_win" class="text2" value="50.48%" /></li>
                                        <li>
                                            <p>
                                                MVP:</p>
                                            <input name="mvp" type="text" id="mvp" class="text2" value="167" /></li>
                                        <li>
                                            <p>
                                                破:</p>
                                            <input name="resv6" type="text" id="resv6" class="text2" value="186" /></li>
                                        <li>
                                            <p>
                                                富:</p>
                                            <input name="resv5" type="text" id="resv5" class="text2" value="187" /></li>
                                        <li>
                                            <p>
                                                军:</p>
                                            <input name="resv7" type="text" id="resv7" class="text2" value="166" /></li>
                                        <li>
                                            <p>
                                                助攻:</p>
                                            <input name="resv8" type="text" id="resv8" class="text2" value="73" /></li>
                                        <li>
                                            <p>
                                                补:</p>
                                            <input name="resv9" type="text" id="resv9" class="text2" value="220" /></li>
                                        <li>
                                            <p>
                                                魂:</p>
                                            <input name="resv10" type="text" id="resv10" class="text2" value="180" /></li>
                                    </ul>
                                </div>
                            </div>
                            <div class="result">
                                <div class="recordtt vt2">
                                    鉴定结果</div>
                                <div class="resultco">
                                    <p id="jianding1">天梯得分:1445 &gt;&gt;&gt;&gt;&gt; 鉴定结果:业余玩家C级。</p>
                                    <p id="jianding5">在业余玩家C级里面:</p>
                                    <p id="jianding2">平均得分:1.341 &gt;&gt;&gt;&gt;&gt; 鉴定结果:不错!再提高些姿势水平吧!</p>
                                    <p id="jianding3">影响比赛的胜负的概率:22.315% &gt;&gt;&gt;&gt;&gt; 鉴定结果:偶尔能成为比赛的关键!</p>
                                    <p id="jianding4">最喜欢做的事情是:补刀神马的最随意了!</p>
                                </div>
                            </div>
    这段就是相应的数据..用正则提取就不用说了吧..下面还有一截是它分页标签另外一个表格用的..继续正则
      

  9.   

    出门了..随便给你写个简单的..再不会问问论坛里面大把人都会.. public static void main(String[] args) throws Exception {
    URL url = new URL("http://dotazj.uuu9.com/");
    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
    connection.setDoOutput(true);
    String name = URLEncoder.encode("官人可以不", "utf-8");
    connection
    .getOutputStream()
    .write(
    ("__VIEWSTATE=%2FwEPDwUKLTc0MDM2OTU4MQ9kFgICAQ9kFhgCGw8WAh4JaW5uZXJodG1sBT7lpKnmoq%2FlvpfliIbvvJowICZndDsmZ3Q7Jmd0OyZndDsmZ3Q7IOmJtOWumue7k%2BaenO%2B8muaWsOaJi%2BOAgmQCHQ8WAh8ABRLlnKjmlrDmiYvph4zpnaLvvJpkAh8PFgIfAAVH5bmz5Z2H5b6X5YiG77yaMC42ODggJmd0OyZndDsmZ3Q7Jmd0OyZndDsg6Ym05a6a57uT5p6c77yaQUnpnIDopoHkvaDvvIFkAiEPFgIfAAVu5b2x5ZON5q%2BU6LWb55qE6IOc6LSf55qE5qaC546H77yaMjUuMDAwJSAmZ3Q7Jmd0OyZndDsmZ3Q7Jmd0OyDpibTlrprnu5PmnpzvvJrlgbblsJTog73miJDkuLrmr5TotZvnmoTlhbPplK7vvIFkAiMPFgIfAAU85pyA5Zac5qyi5YGa55qE5LqL5oOF5piv77ya5ouG6buR5LiT5Lia5oi377yM5q275b6X5YW25omA77yBZAIlD2QWFAIBD2QWFGYPFgIfAAUM5pK85Zyw56We54mbZAIBDxYCHwAFATRkAgIPFgIfAAUBMGQCAw8WAh8ABQEwZAIEDxYCHwAFATBkAgUPFgIfAAUBMGQCBg8WAh8ABQEwZAIHDxYCHwAFATFkAggPFgIfAAUBMWQCCQ8WAh8ABQQwLjc1ZAICD2QWFGYPFgIfAAUM5Zec6KGA54uC6a2UZAIBDxYCHwAFATRkAgIPFgIfAAUBMGQCAw8WAh8ABQEwZAIEDxYCHwAFATBkAgUPFgIfAAUBMGQCBg8WAh8ABQEwZAIHDxYCHwAFATBkAggPFgIfAAUBMWQCCQ8WAh8ABQMwLjVkAgMPZBYUZg8WAh8ABQbmspnnjotkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQExZAIJDxYCHwAFATJkAgQPZBYUZg8WAh8ABRLlpaXmnpfljLnmlq%2FkuYvnjotkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQExZAIJDxYCHwAFATJkAgUPZBYUZg8WAh8ABQzngbXprYLlrojljatkAgEPFgIfAAUBMmQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgYPZBYUZg8WAh8ABQbliZHlnKNkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgcPZBYUZg8WAh8ABQ%2FlnLDnsr7kv67ooaXljKBkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAggPZBYUZg8WAh8ABQbmlqfnjotkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgkPZBYUZg8WAh8ABQzmmpflvbHokKjmu6FkAgEPFgIfAAUBMWQCAg8WAh8ABQEwZAIDDxYCHwAFATBkAgQPFgIfAAUBMGQCBQ8WAh8ABQEwZAIGDxYCHwAFATBkAgcPFgIfAAUBMGQCCA8WAh8ABQEwZAIJDxYCHwAFATBkAgoPZBYUZg8WAh8ABQnpo47ooYzogIVkAgEPFgIfAAUCMzRkAgIPFgIfAAUBNGQCAw8WAh8ABQEyZAIEDxYCHwAFATBkAgUPFgIfAAUBNGQCBg8WAh8ABQE2ZAIHDxYCHwAFATlkAggPFgIfAAUBNGQCCQ8WAh8ABQQxLjIxZAInDxYCHwAFSuacgOWWnOasoueUqOeahOiLsembhO%2B8muaSvOWcsOelnueJmyDigJTigJQg5pyA5LiN5Zac5qyi55qE6Iux6ZuE77ya5rKZ546LZAIpDxYCHwAFNeacgOaThemVv%2BeahOiLsembhO%2B8miDigJTigJQg5pyA5LiN5pOF6ZW%2F55qE6Iux6ZuE77yaZAIrDxYCHwAFVue7vOWQiOW%2Bl%2BWIhuacgOmrmOeahOiLsembhO%2B8muaymeeOiyDigJTigJQg57u85ZCI5b6X5YiG5pyA5L2O55qE6Iux6ZuE77ya54G16a2C5a6I5Y2rZAItDxYCHwAFQuS9v%2BeUqOS4i%2BWIl%2BiLsembhOWkqeair%2Benr%2BWIhuWinuWKoOacgOW%2Fq%2BS9huWHj%2BWIhumjjumZqei%2Bg%2BWkp%2B%2B8mmQCLw8WAh8ABULkvb%2FnlKjkuIvliJfoi7Hpm4TlpKnmoq%2Fnp6%2FliIblop7liqDmnIDlv6vkvYblh4%2FliIbpo47pmanovoPlsI%2FvvJpkAjEPFgIfAAU25L2%2F55So5LiL5YiX6Iux6ZuE5aSp5qKv56ev5YiG5q%2Br5peg5Y6L5Yqb5omT6YWx5rK577yaZGTLf6CYjKrP%2Bpofue4IvsSg3Ldx6w%3D%3D&__EVENTVALIDATION=%2FwEWDgKdzPG2BgL7uPQdArursYYIApOixrIJArqP2b0HAp2ilpYPAtO31N4HAp3hgG0CgZLB4wgCgpLB4wgCgJLB4wgC95HB4wgC9pHB4wgC%2FpGB5AgcHU9R9yFzs%2FdyHJRv78I%2Fhyul3A%3D%3D&name="
    + name +"&Button2=%E9%89%B4%E5%AE%9A%E7%8E%A9%E5%AE%B6&ladderRating=0&jushu=0&win=0&p_win=0&mvp=0&resv6=0&resv5=0&resv7=0&resv8=0&resv9=1&resv10=4"
    ).getBytes());
    connection.getOutputStream().flush();
    connection.getOutputStream().close();
    BufferedReader reader = new BufferedReader(new InputStreamReader(
    connection.getInputStream(), "utf-8"));
    String str = null;
    StringBuffer stringBuffer = new StringBuffer();
    while ((str = reader.readLine()) != null) {
    stringBuffer.append(str);
    }
    reader.close();
    String content = stringBuffer.toString();
    printDetail(content, "ladderRating");
    printDetail(content, "jushu");
    printDetail(content, "p_win");
    } private static void printDetail(String content, String label){
    Pattern pattern = Pattern.compile("name=\""+ label +"\".*?value=\"(.+?)\"");
    Matcher matcher = pattern.matcher(content);
    if(matcher.find()){
    System.out.println(label + ":" + matcher.group(1));
    }
    }
    ladderRating:1445
    jushu:1555
    p_win:50.48%
      

  10.   

    可以看出 __VIEWSTATE 和 Button2 是通过什么加密的吗
      

  11.   

    __VIEWSTATE 和 __EVENTVALIDATION 发送的会是什么东西?
      

  12.   

    自己抓肯定会各种问题,就算有稳定的解决办法也严重依赖于官方开发团队的更新行为。
    所以我还是建议LZ致信官方要求公开调用数据API或其他调用数据方式,因为很多主流的大型游戏公开这类信息,如eve、wow等,这明显是免费游戏推广的机会。
      

  13.   

    自己制作一个socket的工具里,拼接url发送。
    用收到的返回值提取所需要的数据。
      

  14.   

            // 非空验证       
     function check() {           
     if ("" == jQuery.trim(jQuery("#name").val())) {               
     alert("请先输入名称!");               
     jQuery("#name").focus();               
     return false;            
    }           
     jQuery("#xload").css("display", "");          
      return true;       
     }       
     jQuery(function () {      
          // 微博分享           
     if ("" != jQuery.trim(jQuery("#jianding1").html())) {              
      bShare.addEntry({ title: 'Dota路人测试器', url: window.location.href, summary: 
    jQuery("#name").val() + jQuery("#jianding1").html() + jQuery("#jianding2").html() + jQuery("#jianding3").html() + jQuery("#jianding4").html() });           
     }        else {             
       bShare.addEntry({ title: 'Dota路人测试器', url: window.location.href, summary: '' });      }        });    
          
        从上面这些内容看,summary后面的就是你要的答案了。
      

  15.   

    httpwatch
    火狐的firebug
    smartsniff
    这东西最烦人,你费老大劲找全了,人随便改个参数你就得找半天
      

  16.   

    唉,我等不想活了,还是去看看新技术吧,搞java5年了,没有方向了,就同楼上一样,代码写的在牛逼,在线大数据来有毛用。。 最近在看一些新东西,http://www.peileyuan.com/2013/0114/128.html
      

  17.   

    http://dotazj.uuu9.com/?name=%E5%AE%98%E4%BA%BA%E5%8F%AF%E4%BB%A5%E4%B8%8D&Button2=%E9%89%B4%E5%AE%9A%E7%8E%A9%E5%AE%B6&__VIEWSTATE=/wEPDwUKLTc0MDM2OTU4MWRkdnHk0W4HDT6tWMaLWW2qSHjLMjo=&__EVENTVALIDATION=/wEWDgKT/quHAwL7uPQdArursYYIApOixrIJArqP2b0HAp2ilpYPAtO31N4HAp3hgG0CgZLB4wgCgpLB4wgCgJLB4wgC95HB4wgC9pHB4wgC/pGB5AgIvx4nZ1D5G0oNB/faZ4RrAL06Og==