解决方案 »
- struts.xml中报package must match错误
- jsp中从数据库取出来的东西排版问题排成m*n格式
- action传list到jsp,jsp判断是否为空
- eclipse3.3 +myeclipse6.0+tomcat6.0 启动tomcat的问题
- 关于Tomcat 连接池的问题
- 一个找不到包的简单例子
- 有难度的HQL关联查询问题,高手请进……(分值不够一定再加)
- ACTIONFORM的写法的问题
- 学习JSP,是否还要学习HTML、DHTML、JAVASCRIPT、JAVA、JAVABEAN、SERVLET、STRUTS、JDBC、SQL、WEBSERVR等等呢?!如果是的,我就不学了
- 在Java中调用C#.net写的Web Service,返回值都是null,错在哪?
- 求助!hibernate的映射文件的蛋疼问题...
- 两个数组找相同元素
这个方法着实好,不过可不可以通过解析这个HTML来找到一个方法获取数据呢??
这个URL很隐蔽的,根本找不到
jquery什么的也可以看到??您看一下呗看过网站再说好吗。
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分钟都还行,不知道它的验证码之类的会不会过期..过期了你自己抓抓看
<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 >>>>> 鉴定结果:业余玩家C级。</p>
<p id="jianding5">在业余玩家C级里面:</p>
<p id="jianding2">平均得分:1.341 >>>>> 鉴定结果:不错!再提高些姿势水平吧!</p>
<p id="jianding3">影响比赛的胜负的概率:22.315% >>>>> 鉴定结果:偶尔能成为比赛的关键!</p>
<p id="jianding4">最喜欢做的事情是:补刀神马的最随意了!</p>
</div>
</div>
这段就是相应的数据..用正则提取就不用说了吧..下面还有一截是它分页标签另外一个表格用的..继续正则
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%
所以我还是建议LZ致信官方要求公开调用数据API或其他调用数据方式,因为很多主流的大型游戏公开这类信息,如eve、wow等,这明显是免费游戏推广的机会。
用收到的返回值提取所需要的数据。
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后面的就是你要的答案了。
火狐的firebug
smartsniff
这东西最烦人,你费老大劲找全了,人随便改个参数你就得找半天