ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: bailanhong

[求助] 蓝天老师帮忙!请问,不显示的网页数据可以提取码

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-15 23:56 | 显示全部楼层
我主要是想要它查询出来的“异名”

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-16 08:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
一直在等!!

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-16 18:42 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-4-16 20:44 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-4-17 00:17 | 显示全部楼层
bailanhong 发表于 2013-4-15 23:56
我主要是想要它查询出来的“异名”

啥叫异名呀?
兄弟哪高就呀?

TA的精华主题

TA的得分主题

发表于 2013-4-17 21:34 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
好像有点问题:比如说查询“黄精”。
所以要修改一下:
  1. Private Sub CommandButton1_Click()    'nature_museum查询
  2.     On Error Resume Next
  3.     With CreateObject("internetexplorer.application")
  4.         .Visible = False
  5.         .Navigate "http://www.nature-museum.net/Spdb/spsearch.aspx"
  6.         While .ReadyState <> 4 Or .busy
  7.             DoEvents
  8.         Wend
  9.         For p = 1 To Range("a65536").End(xlUp).Row
  10.             n = Range("E65536").End(xlUp).Row
  11.             .document.getElementById("txtSearchName").Value = Cells(p, 1)
  12.             .document.getElementById("QueryCmd").Click
  13.             Set r = .document.getElementById("QueryResult").All.tags("table")
  14.             t1 = Timer
  15.             ss = ""
  16.             Do Until Timer > t1 + 1000
  17.                 ss = r(0).Rows(0).Cells(1).innerText
  18.                 If ss <> "" Then GoTo 1
  19.                 DoEvents
  20.                 ss = ""
  21.             Loop
  22. 1:
  23.             For i = 0 To r.Length - 1
  24.                 Set r1 = r(i).Rows
  25.                 temp = Split(r1(0).Cells(1).innerText, vbCrLf)
  26.                 Range(Cells(i + 1 + n, 2), Cells(i + 1 + n, 1 + UBound(temp))) = temp
  27.                 If Left(Cells(i + 1 + n, "D"), 2) = "别名" Then
  28.                     Range("D" & i + 1 + n).Insert Shift:=xlToRight, CopyOrigin:=xlFormatFromLeftOrAbove
  29.                 End If
  30.             Next i
  31.             n = Range("E65536").End(xlUp).Row
  32.             Range("B" & n & ":H" & n).Borders(xlEdgeBottom).LineStyle = xlContinuous
  33.             Set r = Nothing
  34.         Next p
  35.         .Quit
  36.     End With
  37. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2013-4-17 12:56 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2013-4-17 13:12 | 显示全部楼层
本帖最后由 kangatang 于 2013-4-17 13:20 编辑

模糊查询 “枫树”,所有结果都在链接地址
http://www.nature-museum.net/Aja ... 1&start=0&limit=100

查询结果是JSON数组,再解析出来即可。

下面应该是那个解析函数 (见源代码:http://www.nature-museum.net/Spd ... tectCookieSupport=1)

function FuzzyQuerySp()
{
    $("#QueryResult").html("<div><img src='/images/loading1.gif' /><span>正在搜索,请稍等......</span></div>");
    var cName = $("#txtSearchName").val().TrimUnnecessaryBlank();
    //alert(cName);
    GetFuzzyQuerySpResult(cName,0,100,"QueryResult");
}

function GetFuzzyQuerySpResult(cName,nStart,nLimit, resultContainer)
{
    $.getJSON("/Ajaxserver/server.ashx?service=spdict&method=fuzzyquery&format=json", { name: cName, start: nStart, limit: nLimit },
        function(r)
        {
            if (IsJSONMsg(r))
            {
                ShowJSONMsg(r);
                return "";
            }
            else
            {
                var SpCount = r.ResultList.length;
                if (SpCount < 1)
                {
                    alert("您键入的物种名称不在当前物种库中,如果您确认它是正确的,请先添加到物种库当中!");
                    return;
                }
                if (SpCount > 0)
                {
                    var data = r.ResultList;
                    var totalCount = r.TotalDataCount;
                    var searched = r.SearchStoppedLocation;
                    var percent = Math.round((parseFloat(searched) / parseFloat(totalCount)) * 100);
                    var SpListHtml = "<div class='resultTips' style='float:left;'>共搜索到" + SpCount + "条物种记录(用时" + r.ProcessTime + "毫秒," + percent + "% 已搜索)</div>";
                    if (totalCount > searched)
                    {
                        SpListHtml += "<div style='padding:3px 10px; border:solid 1px #333;cursor:pointer; text-align:center; width:80px; margin:5px;float:left;' onclick='GetFuzzyQuerySpResult(\"" + cName + "\"," + (searched + 1) + "," + nLimit + ",\"QueryResult\");'>继续搜索</div>";
                    }

                    SpListHtml += "<hr style='clear:both;' />";
                    for (var i = 0; i < SpCount; i++)
                    {
                        SpListHtml += "<table ";
                        if (i % 2 == 0)
                        {
                            SpListHtml += "class='nooddrow'>";
                        }
                        else
                        {
                            SpListHtml += "class='oddrow'>";
                        }
                        SpListHtml += "<tr><td valign='top' align='center' style='font-size:10px;'>";
                        SpListHtml += "<a href=\""+_WebRoot+"/spdb/TaxonNodeTree.aspx?spid=";
                        SpListHtml += data.Key;
                        SpListHtml += "\" target=\"_blank\">";
                        SpListHtml += "<img src=\"/Data/";
                        SpListHtml += data.PhotoID;
                        SpListHtml += ".photoThumbnail\" style=\"border:solid 1px #bbb; padding:1px; width:100px;\" /></a>";
                        SpListHtml += "<br />照片多于 " + data.PhotoCount + " 张";
                        SpListHtml += "</td><td style=\"padding-left:20px;\" valign='top'>";
                        SpListHtml += "<a href=\""+_WebRoot+"/";
                        SpListHtml += data.Key;
                        SpListHtml += ".sp\" target=\"_blank\">";
                        SpListHtml += "<span class='SpCName'>";

                        var bMathed = (data.Name_Zh.indexOf(cName) > 0 || cName.indexOf(data.Name_Zh) > 0);
                        if (bMathed)
                            SpListHtml += "<span class='foundWord'>";

                        SpListHtml += data.Name_Zh;

                        if (bMathed)
                            SpListHtml += "</span>";

                        SpListHtml += "</span>";

                        if (!data.IsPreferred)
                            SpListHtml += "<span style='color:red;font-size:12px;margin-left:20px;'>【别名】</span>";

                        SpListHtml += "<br />";

                        SpListHtml += "<span class=\"SpLatinName\">";

                        var bMathed = (data.Name_Latin.indexOf(cName) > 0 || cName.indexOf(data.Name_Latin) > 0);
                        if (bMathed)
                            SpListHtml += "<span class='foundWord'>";

                        SpListHtml += data.Name_Latin;


                        if (bMathed)
                            SpListHtml += "</span>";

                        SpListHtml += "</span>";
                        SpListHtml += "<span class='SpLatinNameSAuthor'> ";
                        SpListHtml += data.SAuthor;
                        SpListHtml += "</span>";
                        SpListHtml += "</a><br />";
                        if (!IsEmpty(data.FamilyGenus))
                        {
                            SpListHtml += data.FamilyGenus.FamilyName_Zh + "  " + data.FamilyGenus.FamilyName_Latin + "  " + data.FamilyGenus.GenusName_Zh + "<br />";
                        }

                        if (!IsEmpty(data.NormalNamesList))
                        {
                            SpListHtml += "别名:";
                            for (var j = 0; j < data.NormalNamesList.length; j++)
                            {
                                if (data.NormalNamesList[j].Name.indexOf(cName) > 0 || cName.indexOf(data.NormalNamesList[j].Name) > 0)
                                    SpListHtml += "<span class='foundWord'>" + data.NormalNamesList[j].Name + "</span>  ";
                                else
                                    SpListHtml += data.NormalNamesList[j].Name + "  ";
                            }
                            SpListHtml += "<br />";
                        }

                        var linkKey = ""+_WebRoot+"/" + data.Key;
                        SpListHtml += "<a href=\"" + linkKey + ".spage\" target=\"_blank\"><span class='hightlightlink'>物种详细信息页:" + linkKey + ".spage" + "</span></a>" + "<br />";
                        SpListHtml += "<a href=\"" + linkKey + ".sp\" target=\"_blank\"><span class='hightlightlink'>物种信息卡:" + linkKey + ".sp" + "</span></a>" + "<br />";
                        SpListHtml += "<a href=\"" + linkKey + ".spalbum\" target=\"_blank\"><span class='hightlightlink'>物种图库:" + linkKey + ".spAlbum" + "</span></a>" + "<br />";
                        //http: //www.cfh.ac.cn/Wiki/page.aspx?action=read&bookid=CFHWiki&target=Sp&targetid=28140
                        SpListHtml += "<a href=\"/Wiki/page.aspx?action=read&bookid=CFHWiki&target=Sp&targetid=" + data.Key + "\" target=\"_blank\"><span class='hightlightlink'>物种Wiki词条:" + linkKey + ".spWiki</span></a><br />";

                        SpListHtml += "</td></table>";
                    }
                    $("#" + resultContainer).html(SpListHtml);
                }

            }
        }
    );
}


在网页上显示出来:

untitled.JPG

TA的精华主题

TA的得分主题

 楼主| 发表于 2013-4-17 13:35 | 显示全部楼层
kangatang 发表于 2013-4-17 13:12
模糊查询 “枫树”,所有结果都在链接地址
http://www.nature-museum.net/Aja ... 1&start=0&limit=100

...


想离线时候用。这么多代码,辛苦老师了!
运行时提示语法错误“{”

TA的精华主题

TA的得分主题

发表于 2013-4-17 18:51 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
bailanhong 发表于 2013-4-17 13:35
想离线时候用。这么多代码,辛苦老师了!
运行时提示语法错误“{”

这是浏览器能执行的网页代码,不能拿来直接运行。只是用来分析它的JSON解析过程。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-10 04:49 , Processed in 0.026679 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表