序言,我是初学者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;
}
我希望有帮助。