2012-06-12 2 views
0

웹 수확물을 사용하여 웹 페이지에서 특정 콘텐츠를 긁어 내고 싶습니다. 내용을 긁어 내려고했을 때 다른 웹 사이트에서 잘 작동하지만 this URL의 내용을 긁어 모으지 않습니다.웹 수확을 사용하여 웹 페이지 콘텐츠 긁기

import org.webharvest.definition.ScraperConfiguration; 
import org.webharvest.runtime.Scraper; 
import org.webharvest.runtime.variables.Variable; 
import java.io.FileNotFoundException; 
public class App 
{ 
public static void main(String[] args) 
{ 
    try 
    { 
     ScraperConfiguration config = new ScraperConfiguration("twit88.xml"); 
     Scraper scraper = new Scraper(config, "c:/temp/"); 
     //scraper.getHttpClientManager().setHttpProxy("proxy-server", 8001); 
     scraper.addVariableToContext("url", "http://freesearch.naukri.com/preview/preview?uname=63017692f2b266780bfd20476cd67466001a4a17005b4a5355041f121b502e18514b4e4e43121c4151005&sid=73682841&LT=1339495252"); 
     scraper.setDebug(true); 
     scraper.execute(); 
     // takes variable created during execution 
     Variable article = (Variable)scraper.getContext().getVar("article"); 
     // do something with articles... 
     System.out.println(article.toString()); 
     //System.out.println("1234=====rtyu"); 
    } 
    catch (FileNotFoundException e) 
    { 
     System.out.println(e.getMessage()); 
    } 
} 
} 

그리고 내 XML은 여기에 있습니다 : :

내 자바 코드가 여기에있다

I 등이 URL 예를 들어, 후보 이름의 첫 번째 블록, 현재의 명칭, 회사를 긁어 할
<?xml version="1.0" encoding="UTF-8"?> 

<config charset="UTF-8"> 
<!-- 
<var-def name="url">http://twit88.com/blog/2008/01/02/java-encrypt-and-send-a- large-file-securely/</var-def>   
--> 

<!-- <file action="write" path="twit88/twit88${sys.date()}.xml" charset="UTF-8"> --> 

    <!-- 
    <template> 
     <![CDATA[ <twit88 date="${sys.datetime("dd.MM.yyyy")}"> ]]> 
    </template> 
    --> 
<var-def name="article"> 
    <xquery> 
     <xq-param name="doc"> 
      <html-to-xml outputtype="browser-compact" prunetags="yes"> 
       <http url="${url}"/> 
      </html-to-xml> 
     </xq-param> 

     <xq-expression><![CDATA[ 
     declare variable $doc as node() external;   
     let $title := data($doc//div[@class="bdrGry"]/div[@class="boxHD1"]/h1) 

     return 
      <article>     
       <title>{data($title)}</title> 
      </article>    
     ]]> 
     </xq-expression> 

    </xquery> 
    </var-def> 
    <!-- 
     <![CDATA[ </twit88> ]]> --> 
    <!-- </file> -->    

    </config> 

, 하지만 XML 파일에서 해당 클래스를 사용하여 다쳤습니다.

(I 후보 이름 만 긁어 첫 번째 시도에 대해 하나의 시도) 그러나 그것은 작동하지 않습니다. 누구든지 내가 뭘 잘못하고 있는지 말해 줄 수 있니?

+0

, 그것은 "스크랩"스크랩 '또는'폐기 반대 '크레이프'또는 '긁어'이다. 위에서 본 코드에서 몇 가지 힌트를 얻을 수 있습니다. –

+0

고맙습니다.하지만이 해결책은 무엇입니까? –

+0

철자가 맞습니까? 이미 편집 한 편집. 미래에 더 많은주의를 기울이거나 질문을 타이핑 할 때 더 많은주의를 기울이십시오. –

답변

3

.. this URL에 대한 내용물을 긁어 모으지 않았습니다. Naukri.com의 Terms & Conditions에서

:

Naukri.com은 콘텐츠를 스크랩하는 웹 사이트를 크롤링하고 에서 로봇 등을 제외 기술적 방법을 사용합니다. 사용자는 을 수행하지 않으므로이 방법을 사용할 수 없습니다. 제쳐두고

관련 문제