2014-09-08 1 views
0

Je suis nouveau avec cette langue et je suis coincé dans une tâche simple.WebHarvest besoin 50 résultat dans une demande

Fondamentalement, je voudrais obtenir 50 résultats au lieu des 10 résultats de base que le chercheur me donne comme résultat de base. Ce sera le code:

<include path="functions.xml"/> 
<!-- The phrase to search for in the 4shared API --> 
<var-def name="searchPhrase">Adele Rolling In The Deep</var-def> 

<!-- The type of sorting that the 4shared API will use (2 = sort by upload date) --> 
<var-def name="sortType">2</var-def> 

<!-- The order for search results (-1 = ascending) --> 
<var-def name="sortOrder">-1</var-def> 

<!-- The page to start the search on (the API returns 10 results per page) --> 
<var-def name="start">1</var-def> 

<!-- Make a web request to the 4shared search API and store the XML returned in the 'pageXml' variable --> 
<while condition="true" index="start" maxloops="5"> 
    <var-def name="pageXml" overwrite="true"> 

      <http url="http://search.4shared.com/network/searchXml.jsp" charset="UTF8"> 
      <http-param name="q"><template>${searchPhrase}</template></http-param> 
      <http-param name="sortType"><template>${sortType}</template></http-param> 
      <http-param name="sortOrder"><template>${sortOrder}</template></http-param> 
      <http-param name="start"><template>${start}</template></http-param> 
    </http> 

    </var-def> 
</while> 
<file action="write" type="text" path="xml/pageXml.xml"> 
    <var name="pageXml"></var> 
</file> 


<!-- Extract all 'url' nodes from the XML returned from the API call using XPath. 
    The xpath expression used here is '//result-files/file/url/text()' meaning return the text value of all 
    'url' nodes with a 'file' node, within a 'result-files' node. 
--> 
<var-def name="urls" overwrite="true"> 
    <xpath expression="//result-files/file/url/text()"> 
     <var name="pageXml"/> 
    </xpath> 
</var-def> 

<!-- Extract all 'name' nodes from the XML returned from the API call using XPath --> 


<!-- Extract all 'downloads-count' nodes from the XML returned from the API call using XPath --> 
<var-def name="downloadsCount"> 
    <xpath expression="//result-files/file/downloads-count/text()"> 
     <var name="pageXml"/> 
    </xpath> 
</var-def> 
<file action="write" type="text" path="xml/downloadsAverage.xml"> 
      <var name="downloadsCount"></var> 
</file> 
<!-- Extract all 'size' nodes from the XML returned from the API call using XPath --> 
<var-def name="size"> 
    <xpath expression="//result-files/file/size/text()"> 
     <var name="pageXml"/> 
    </xpath> 
</var-def> 
<file action="write" type="text" path="xml/size.xml"> 
      <var name="size"></var> 
</file> 




<!-- Calculate the average number of downloads. 
    Note that the <script> tag is used in order to interact with the variables using beanscript, 
    which is a Java like language. 
    Previously defined variables can be accessed directly, and a toList() method can be called to convert them into 
    a List, and then individual items can be accessed by called the standard List method of get(), and then finally 
    toString() can be called to convert individual items to Strings. 
--> 
<var-def name="averageDownloads"> 
    <script return="returnVariable"><![CDATA[ 
     var downloadsCountSize = downloadsCount.toList().size(); 
     var totalDownloads = 0; 

     for(int i = 0; i < downloadsCountSize; i++) { 
      totalDownloads = totalDownloads + new Integer(downloadsCount.toList().get(i).toString().replace(",","")); 
     } 

     var returnVariable = totalDownloads/downloadsCountSize; 
    ]]></script> 
</var-def> 
<file action="write" type="text" path="xml/avgDownloads.xml"> 
      <var name="averageDownloads"></var> 
</file> 

Quelqu'un peut-il dire comment puis-je résoudre ce ??? S'IL VOUS PLAÎT!!

Répondre

0

Vous avez fermé votre boucle while (</while>) trop tôt.

Seules les instructions contenues dans l'<while>...</while> seront répétées, ce qui signifie que vous ne traiter que la dernière page de résultats (écrire pageXml.xml, extrait « url » nœuds etc ...)

Par conséquent, je pense que votre </while> devrait apparaître juste à la fin du code que vous avez posté ici.

Questions connexes