使用jsoup和coldfusion进行html解析

时间:2014-03-27 13:56:04

标签: coldfusion jsoup

这是我previous question的延续。下面是我试图构建解析HTML的脚本,如下例所示。我收到错误 必须在使用前初始化值。 无法附加错误。

我必须使用jsoup进行http调用,其中 我需要提供服务器登录的用户名和密码 。以下代码是正确的方法吗?我查看了使用jsoup进行html解析的Bennals blog


我在Application.cfc

中有这个
component {
  this.name = "jsoupTest";
  this.javaSettings = {loadPaths=["/jsoup/jsoup-1.7.3.jar"], loadColdFusionClassPath=true};
}

要解析的HTML示例

请注意,至少有5000行,如下所示需要解析,只从TD中提取TEXT

<tbody>
        <tr>
        <td class="drpdetailtablerowdetailleft">Robert M Best Jr.</td>
        <td class="drpdetailtablerowdetailleft">AAI</td>
        <td class="drpdetailtablerowdetail"><a href="http://ebiz.sbc.com/mots/detail.cfm?appl_id=7948" target="_blank" style="color:blue;">7948</a></td>
        <td class="drpdetailtablerowdetail">1</td>
        <td class="drpdetailtablerowdetail">MC</td>
    <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td>
        </tr>
        </tbody>

        <tbody>
        <tr>
        <td class="drpdetailtablerowdetailleft">Robert M Best Jr.</td>
        <td class="drpdetailtablerowdetailleft">ABWS</td>
        <td class="drpdetailtablerowdetail"><a href="http://ebiz.sbc.com/mots/detail.cfm?appl_id=4884" target="_blank" style="color:blue;">4884</a></td>
        <td class="drpdetailtablerowdetail">4</td>
        <td class="drpdetailtablerowdetail">NMC</td>
    <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td> <td class="drpdetailtablerowdetail">Compliant</td>
        </tr>
        </tbody>

更新了要使用的代码

     <cfhttp url="https://intra.att.com/itscmetrics/EM2/LTMR.cfm" method="get" username="abc" password="zxyr">  

 <cfhttpparam type="url" name="LTMX" value="Andre Fuetsch / Shelly K Lazzaro">

</cfhttp> 

 <cfset jsoup = createObject("java", "org.jsoup.Jsoup") />
<cfset document = jsoup.parse(myPage.filecontent) />

<cfset content = doc.getElementById("contentwrapper")>



<!--- Let's see what we got. --->
<cfdump var="#content#" />

enter image description here

3 个答案:

答案 0 :(得分:0)

首次在你的parse命令中声明了myPage变量。

我认为您需要在cfhttp调用中添加结果=&#34; myPage&#34;

<cfhttp result="myPage" url="https://intra.att.com/itscmetrics/EM2/LTMR.cfm" method="get" username="abc" password="zxyr">

答案 1 :(得分:-1)

它看起来不起作用的原因是因为你没有在Jsoup类上调用构造函数。

尝试更改此行

var jSoupClass = createObject( "java", "org.jsoup.Jsoup" ).init(); // note calling init calls the constructor for the Java class

答案 2 :(得分:-1)

您是否正确安装了jar文件?

  

ColdFusion按以下顺序搜索对象:

     
      
  1. ColdFusion Java动态类加载目录:
  2.   
  3. web_root / WEB-INF / lib
  4. 中的Java归档(.jar)文件   
  5. web_root / WEB-INF / classes
  6. 中的类(.class)文件   

引自:About ColdFusion, Java, and J2EE

将jar文件复制到web_root/WEB-INF/lib,重新启动CF,然后重试。