从网站显示一部分随机网页



序言,我是初学者Java学习者,试图弄清楚我需要学习/掌握的内容,然后才能解决这个问题。因此,我正在寻找实现这一目标所需的广泛的中风/过程。

我正在尝试制作一个程序,该程序从医疗图像地图集网站上显示一个随机页面,同时隐藏了页面中的大多数元素。然后单击按钮,揭示了评论/描述。该程序将非常适合研究/审查现场诊断或教学。

网站URL格式为/iMage.asp?n=x& cases = y
其中x =图片#来自特定疾病实体,y =疾病实体。X可以高达50,y最多可达750(由器官系统分组)

理想情况下,程序将在该范围内生成一个随机X和随机Y的链接,请测试以查看网页是否存在。如果没有,请重复;如果确实如此,它将被馈入将某些元素隐藏在网页中的程序中。单击按钮将显示包含图像的注释/描述的元素。

使用Java完成此操作的最佳方法是什么?我需要学习什么才能尝试?

谢谢

从广义上讲,您需要使用2页:

第一页是可见的,是您向人们展示的

第2页是隐藏的,您想使用PHP的卷曲功能来加载网站,然后将其解析,以获取使用substr所需的信息,以及其他随之而来的谷歌搜索技术(查找解析或substr)。

然后,您将其打印为XML格式,并通过首页使用JavaScript加载它。

理论上可以直接通过JSON致电,但您可能会遇到CORS问题。

棘手的部分是加载XML,所以让我为您提供帮助:

function loaddata(lurl){
    if (window.XMLHttpRequest){
        xmlHttp=new XMLHttpRequest();
    }
    else{
        xmlHttp=new ActiveXObject("Microsoft.XMLHTTP");
    }
    xmlHttp.open("GET",lurl,false);
    xmlHttp.send(null);
    var xmlDoc = xmlHttp.responseXML;
    x=xmlDoc.documentElement;
    for (i=0;i<x.childNodes.length;i++){
        if (x.childNodes.item(i).nodeType==1){
        firstNode=x.childNodes.item(i).childNodes;
        Arrtype = firstNode[1].childNodes[0].nodeValue;
        if (typeof window[Arrtype] == 'undefined'){
            window[Arrtype] = new Array();
        }
        Arrsize = window[Arrtype].length;
        window[Arrtype][Arrsize] = new Array();
        Arrc = 0;
            for (j=0;j<firstNode.length;j++){
                if (firstNode[j].nodeType==1 && j != 1){
                    if(isNaN(firstNode[j].childNodes[0].nodeValue) == false){
                        window[Arrtype][Arrsize][Arrc] = parseFloat(firstNode[j].childNodes[0].nodeValue,10);
                    }
                    else{
                        window[Arrtype][Arrsize][Arrc] = firstNode[j].childNodes[0].nodeValue;
                    }
                Arrc = Arrc + 1;
                }
            }
        }
    }
}

您可以在PHP中找到该脚本的工作XML文件的示例:

http://www.tffan.com/tiles/pml.php

另外,这是一个卷曲脚本的一部分:确实需要发布一个URL,但是您应该通过研究它来理解这个想法:

$projUrl = $_POST["opt_url"];
$curl_handle=curl_init();
curl_setopt($curl_handle,CURLOPT_URL, $projUrl);
curl_setopt($curl_handle,CURLOPT_CONNECTTIMEOUT,2);
curl_setopt($curl_handle,CURLOPT_RETURNTRANSFER,1);
$buffer = curl_exec($curl_handle);
curl_close($curl_handle);
if (empty($buffer)){
    print "Nothing returned from url.<p>";
}
else{
    $doc = new DOMDocument();
    @$doc->loadHTML($buffer);
    $tag = 'a';
    $elem = 'href';
    $tags = $doc->getElementsByTagName($tag);
    foreach ($tags as $tag) {
        $hotra = $tag->getAttribute($elem);
        if (substr($hotra, 0, 3) == "htt") {
            if (substr($hotra, 0, 13) == "http://ssh.tf") {
                if (strpos($hotra, 'Thread', 0) == 0 ){
                    array_push($a,$tag->getAttribute($elem));
                }
            }
        }
    }
$doc = null;
echo $buffer;
}

我希望有帮助。

最新更新