如何获取此网站的数据,如上图红圈所示。
网站地址:http://dotazj.uuu9.com/
大家可以使用各种方法。
此贴仅限技术性讨论!
39 个解决方案
#1
最实在的方法是直接致信其官方要求公开数据调用API
#2
这个方法着实好,不过可不可以通过解析这个HTML来找到一个方法获取数据呢??
#3
HttpClient 抓网页
#4
支持!这个东西很强大,可以将页面的源码抓取下来,然后你可以对源码分析,提取你想要的数据。
#5
鉴定玩家这个按钮怎么点击呢?
#6
关键是需要点击一下 【鉴定玩家】这个按钮之后才出来我想要的数据
#7
看点击按钮时发送的url呗,
#8
这个URL很隐蔽的,根本找不到。。。
#9
兄弟不要随便说找不到,12306所有请求都能找到,你用HttpAnalyzer抓抓看没有找不到的URL请求。
#10
点击之后浏览器地址栏没有显示吗?不行的话也可以用抓包工具。
#11
点击之后没有任何显示的。。
#12
推荐一个我试试?
#13
jquery什么的也可以看到??您看一下呗。。。看过网站再说好吗。
#14
DOTA?这个如果他用图片显示呢。
不同的网页,数据会有不同的显示形式,你需要对每一个网页都进行不同的解析,你抓取的数据有什么特点?这种要求精确的数据捕获,应该没有统一的方法吧。
不同的网页,数据会有不同的显示形式,你需要对每一个网页都进行不同的解析,你抓取的数据有什么特点?这种要求精确的数据捕获,应该没有统一的方法吧。
#15
判断条件呢?
没外网、不能点
没外网、不能点
#16
你抓网页能抓到数据库用户名和密码吗?
#17
有外网的。。
#18
不需要他们的数据库和密码
#19
网页给你搞出来了,但是它有很多验证用的..我不知道怎么用,不保证这个长期都能用..
这个能把你当前英雄的网页数据读出来,我试了20分钟都还行,不知道它的验证码之类的会不会过期..过期了你自己抓抓看
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分钟都还行,不知道它的验证码之类的会不会过期..过期了你自己抓抓看
#20
战绩一览</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 >>>>> 鉴定结果:业余玩家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>
这段就是相应的数据..用正则提取就不用说了吧..下面还有一截是它分页标签另外一个表格用的..继续正则
<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>
这段就是相应的数据..用正则提取就不用说了吧..下面还有一截是它分页标签另外一个表格用的..继续正则
#21
很好很强大。。。不过正则怎么用?我还想慢慢来截字符串呢。。
#22
我昨晚也是这样抓的,不过现在已经失效了。。。目测他会在12个小时内失效。。。
#23
出门了..随便给你写个简单的..再不会问问论坛里面大把人都会..
ladderRating:1445
jushu:1555
p_win:50.48%
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%
#24
那只有去研究他的验证码是怎么生成的了.. 我网页编程菜得不行
#25
可以看出 __VIEWSTATE 和 Button2 是通过什么加密的吗
#26
__VIEWSTATE 和 __EVENTVALIDATION 发送的会是什么东西?
#27
dota吗?
#28
还用疑问?
#29
自己抓肯定会各种问题,就算有稳定的解决办法也严重依赖于官方开发团队的更新行为。
所以我还是建议LZ致信官方要求公开调用数据API或其他调用数据方式,因为很多主流的大型游戏公开这类信息,如eve、wow等,这明显是免费游戏推广的机会。
所以我还是建议LZ致信官方要求公开调用数据API或其他调用数据方式,因为很多主流的大型游戏公开这类信息,如eve、wow等,这明显是免费游戏推广的机会。
#30
估计他们一般不会同意的。。
#31
顶顶才健康。
#32
自己制作一个socket的工具里,拼接url发送。
用收到的返回值提取所需要的数据。
#33
// 非空验证
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后面的就是你要的答案了。
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后面的就是你要的答案了。
#34
请教这个怎么来的……
#35
httpwatch
火狐的firebug
smartsniff
这东西最烦人,你费老大劲找全了,人随便改个参数你就得找半天
火狐的firebug
smartsniff
这东西最烦人,你费老大劲找全了,人随便改个参数你就得找半天
#36
#37
我没有看明白你说的什么意思。。您说的这些我都不懂。。
#38
学习
#39
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==
#1
最实在的方法是直接致信其官方要求公开数据调用API
#2
这个方法着实好,不过可不可以通过解析这个HTML来找到一个方法获取数据呢??
#3
HttpClient 抓网页
#4
支持!这个东西很强大,可以将页面的源码抓取下来,然后你可以对源码分析,提取你想要的数据。
#5
鉴定玩家这个按钮怎么点击呢?
#6
关键是需要点击一下 【鉴定玩家】这个按钮之后才出来我想要的数据
#7
看点击按钮时发送的url呗,
#8
这个URL很隐蔽的,根本找不到。。。
#9
兄弟不要随便说找不到,12306所有请求都能找到,你用HttpAnalyzer抓抓看没有找不到的URL请求。
#10
点击之后浏览器地址栏没有显示吗?不行的话也可以用抓包工具。
#11
点击之后没有任何显示的。。
#12
推荐一个我试试?
#13
jquery什么的也可以看到??您看一下呗。。。看过网站再说好吗。
#14
DOTA?这个如果他用图片显示呢。
不同的网页,数据会有不同的显示形式,你需要对每一个网页都进行不同的解析,你抓取的数据有什么特点?这种要求精确的数据捕获,应该没有统一的方法吧。
不同的网页,数据会有不同的显示形式,你需要对每一个网页都进行不同的解析,你抓取的数据有什么特点?这种要求精确的数据捕获,应该没有统一的方法吧。
#15
判断条件呢?
没外网、不能点
没外网、不能点
#16
你抓网页能抓到数据库用户名和密码吗?
#17
有外网的。。
#18
不需要他们的数据库和密码
#19
网页给你搞出来了,但是它有很多验证用的..我不知道怎么用,不保证这个长期都能用..
这个能把你当前英雄的网页数据读出来,我试了20分钟都还行,不知道它的验证码之类的会不会过期..过期了你自己抓抓看
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分钟都还行,不知道它的验证码之类的会不会过期..过期了你自己抓抓看
#20
战绩一览</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 >>>>> 鉴定结果:业余玩家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>
这段就是相应的数据..用正则提取就不用说了吧..下面还有一截是它分页标签另外一个表格用的..继续正则
<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>
这段就是相应的数据..用正则提取就不用说了吧..下面还有一截是它分页标签另外一个表格用的..继续正则
#21
很好很强大。。。不过正则怎么用?我还想慢慢来截字符串呢。。
#22
我昨晚也是这样抓的,不过现在已经失效了。。。目测他会在12个小时内失效。。。
#23
出门了..随便给你写个简单的..再不会问问论坛里面大把人都会..
ladderRating:1445
jushu:1555
p_win:50.48%
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%
#24
那只有去研究他的验证码是怎么生成的了.. 我网页编程菜得不行
#25
可以看出 __VIEWSTATE 和 Button2 是通过什么加密的吗
#26
__VIEWSTATE 和 __EVENTVALIDATION 发送的会是什么东西?
#27
dota吗?
#28
还用疑问?
#29
自己抓肯定会各种问题,就算有稳定的解决办法也严重依赖于官方开发团队的更新行为。
所以我还是建议LZ致信官方要求公开调用数据API或其他调用数据方式,因为很多主流的大型游戏公开这类信息,如eve、wow等,这明显是免费游戏推广的机会。
所以我还是建议LZ致信官方要求公开调用数据API或其他调用数据方式,因为很多主流的大型游戏公开这类信息,如eve、wow等,这明显是免费游戏推广的机会。
#30
估计他们一般不会同意的。。
#31
顶顶才健康。
#32
自己制作一个socket的工具里,拼接url发送。
用收到的返回值提取所需要的数据。
#33
// 非空验证
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后面的就是你要的答案了。
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后面的就是你要的答案了。
#34
请教这个怎么来的……
#35
httpwatch
火狐的firebug
smartsniff
这东西最烦人,你费老大劲找全了,人随便改个参数你就得找半天
火狐的firebug
smartsniff
这东西最烦人,你费老大劲找全了,人随便改个参数你就得找半天
#36
#37
我没有看明白你说的什么意思。。您说的这些我都不懂。。
#38
学习
#39
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==