当前位置:编程学习 > JAVA >>

比较有意思的技术性问题,请大家过来看一看!!



如何获取此网站的数据,如上图红圈所示。

网站地址:http://dotazj.uuu9.com/

大家可以使用各种方法。

此贴仅限技术性讨论! 抓包 --------------------编程问答-------------------- 个人认为:httpClient抓取页面,再用jsoup解析。。 --------------------编程问答--------------------
引用 1 楼 NNTT2010 的回复:
个人认为:httpClient抓取页面,再用jsoup解析。。


httpClient  无法获取红圈中的数据。

我抓包来提交了一些POST数据,还是不行

以下是代码


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();
}
--------------------编程问答-------------------- 没有同学来挑战一下吗、 --------------------编程问答-------------------- 有意思的问题,值得关注。。。 --------------------编程问答-------------------- 不懂 坐等大神 --------------------编程问答-------------------- 看里面的javascript AJAX部分的代码,是怎么传参数请求的,照着做就可以了。 --------------------编程问答--------------------
引用 6 楼 Inhibitory 的回复:
看里面的javascript AJAX部分的代码,是怎么传参数请求的,照着做就可以了。


大神动手写个代码? --------------------编程问答-------------------- 頁面上的數字難道是圖片格式的?異步加載的話,仿照頁面的ajax發送請求就可以了唄? --------------------编程问答--------------------
public class HttpUtils {
public static String getResponse(String url) throws IOException {
String result = null;
URL dest = new URL(url);
HttpURLConnection conn = (HttpURLConnection) dest.openConnection();
conn.setDoInput(true);

conn.setRequestProperty("Content-type", "text/html");
conn.setRequestProperty("Accept-Charset", "utf-8");
conn.setRequestProperty("contentType", "utf-8");

BufferedReader in = new BufferedReader(new InputStreamReader(
conn.getInputStream(), "utf-8"));

String line = null;
while ((line = in.readLine()) != null) {
result = result + line;
}
in.close();
conn.disconnect();
return result;
}


public static void main(String[] args) {
try {
// 直接返回HTML源文件代码字符串,再去里面扣自己需要的数据
String HtmlStr = getResponse("http://dotazj.uuu9.com/");
System.out.println(HtmlStr);
} catch (IOException e) {
e.printStackTrace();
}
}
}
--------------------编程问答-------------------- 不错 --------------------编程问答--------------------
引用 8 楼 Bumpking 的回复:
頁面上的數字難道是圖片格式的?異步加載的話,仿照頁面的ajax發送請求就可以了唄?


不是图片是 文字,大神不妨写个代码试试? --------------------编程问答--------------------
引用 9 楼 zhou_yunxiao 的回复:
Java code?12345678910111213141516171819202122232425262728293031323334public class HttpUtils {    public static String getResponse(String url) throws IOException {        String result = n……


大神,你这样取出来的数据是没有“鉴定结果”的,我们需要鉴定结果! --------------------编程问答-------------------- 持续关注............ --------------------编程问答-------------------- 期待大神的code... --------------------编程问答-------------------- --------------------编程问答-------------------- --------------------编程问答-------------------- 除 --------------------编程问答-------------------- 除 --------------------编程问答--------------------
引用 16 楼 lan347916194 的回复:


这是闹那样啊 --------------------编程问答-------------------- 我在IE中加载完这个网页之后,执行JavaScript
javascript:(function() { document.getElementById('Button2').onclick();})()
也无法获取到数据。。 --------------------编程问答--------------------
引用 6 楼 Inhibitory 的回复:
看里面的javascript AJAX部分的代码,是怎么传参数请求的,照着做就可以了。


我觉得这样应该行的。
LZ既然能写出httpclient的代码。 自己动手试试看吧。 --------------------编程问答--------------------
引用 21 楼 scbb 的回复:
引用 6 楼 Inhibitory 的回复:看里面的javascript AJAX部分的代码,是怎么传参数请求的,照着做就可以了。

我觉得这样应该行的。
LZ既然能写出httpclient的代码。 自己动手试试看吧。


点击了按钮之后调到以下javascript,jQuery("#xload").css("display", "");这句真心不知道该怎么去跟踪了。。。

        function check() {
            if ("" == jQuery.trim(jQuery("#name").val())) {
                alert("请先输入名称!");
                jQuery("#name").focus();
                return false;
            }
            jQuery("#xload").css("display", "");
            return true;
        }
--------------------编程问答-------------------- --------------------编程问答-------------------- 在公司,不敢访问这个网站,回去帮你试试看。

都不要和我抢答 --------------------编程问答-------------------- 就喜欢这样的题目 --------------------编程问答-------------------- Content-Encoding: gzip;
源码是压缩过的,抓过来解压一下,就可以拿到数据。
没有js处理的,想多了 --------------------编程问答-------------------- 使用autoit,写一个自动脚本
1.标定好屏幕坐标(即每个文本框)
2.鼠标至坐标入,模拟ctrl+a,ctrl+c
3.使用脚本打开一个文本文档,ctrl+v
4.继续重复第2及第3步直至完成

如果文本框里数字无法复制的话就截屏,然后启动汉王载入图片 --------------------编程问答-------------------- 完全木有难度。
你看下它提交的表单数据,有两个属性值:__VIEWSTATE和__EVENTVALIDATION
一串乱码,你以为这是用js加密的?再一看网页源代码,发现这两个属性就在隐藏表单域里面。
OK,先请求一遍,获得这两个值,然后再请求第二次,带上要查询的用户名和这两个值,成功获得数据。

满意请给分 --------------------编程问答--------------------
引用 28 楼 u010253284 的回复:
完全木有难度。
你看下它提交的表单数据,有两个属性值:__VIEWSTATE和__EVENTVALIDATION
一串乱码,你以为这是用js加密的?再一看网页源代码,发现这两个属性就在隐藏表单域里面。
OK,先请求一遍,获得这两个值,然后再请求第二次,带上要查询的用户名和这两个值,成功获得数据。

满意请给分


good...
补充:Java ,  Java EE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,