2017-03-10 53 views
-2

爲了說明一下,我是一名初學java學習者,想要解決我需要學習/掌握的東西,然後才能解決此問題。所以我正在尋找實現這一目標所需的廣泛中風/過程。從網站顯示隨機網頁的一部分

我試圖做一個程序,顯示從醫學圖像阿特拉斯網站的隨機頁面,同時隱藏頁面中的大多數元素,但圖片。然後點擊一下按鈕,就會顯示評論/說明。這個程序對學習/複習現場診斷或教學非常有用。

網站URL格式是/image.asp?n=X &案例= Y
其中X =從特定疾病實體和Y =疾病實體照片#。 X最多可以達到50,Y可達750(根據器官系統大致分組)

理想情況下,程序會在該範圍內生成隨機X和隨機Y的鏈接,以測試網頁是否存在。如果沒有,重複;如果確實如此,它會被加入隱藏網頁中某些元素的程序中。點擊一個按鈕將顯示包含圖像評論/描述的元素。

什麼是使用java來完成這項工作的最佳方法?我需要學習如何嘗試這個?

感謝

回答

0

從廣義上講,你可能需要使用2頁:

第一個是可見的,是你告訴人們

第2頁是隱藏的,要使用curl 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; 
} 

我希望有所幫助。