2014-04-14 5 views
1

WebHarvest 도구를 사용하여 일부 웹 사이트의 웹 데이터를 스크랩합니다. 예제를 살펴 보았지만 웹 사이트에서 인증 한 다음 데이터를 스크랩 핑 할 수있는 방법을 찾을 수 없었습니다. 누구든지 인증을 통해 웹 데이터를 긁어 모으기 위해 예제 구성을 인용 할 수 있습니까? 로그인 매개 변수를 보내고 홈페이지 내용을 수신하려면 어떻게해야합니까? 이것에 대한 당신의 도움을 감사하십시오.WebHarvest - 인증을 사용하여 데이터 스크랩

답변

0

Web Harvest의 예제 중 하나 (http://web-harvest.sourceforge.net/samples.php?num=4)를 수정했으며 로그인 자격 증명으로 정상적으로 실행 중입니다. 업데이트 된 코드를 얻고 시도해보십시오.

<?xml version="1.0" encoding="UTF-8"?> 

<config charset="ISO-8859-1"> 

    <!-- sends post request with needed login information --> 
    <http method="post" url="http://www.nytimes.com/auth/login"> 
     <http-param name="is_continue">true</http-param> 
     <http-param name="URI">http://</http-param> 
     <http-param name="OQ"></http-param> 
     <http-param name="OP"></http-param> 
     <http-param name="USERID">web-harvest</http-param> 
     <http-param name="PASSWORD">web-harvest</http-param> 
    </http> 

    <var-def name="startUrl">http://www.nytimes.com/pages/todayspaper/index.html</var-def> 

    <file action="write" path="D:/nytimes/nytimes${sys.date()}.xml" charset="UTF-8"> 
     <template> 
      <![CDATA[ <newyourk_times date="${sys.datetime("dd.MM.yyyy")}"> ]]> 
     </template> 

     <loop item="articleUrl" index="i"> 
      <!-- collects URLs of all articles from the front page --> 
      <list> 
       <xpath expression="//div[@class='story']"> 
        <html-to-xml> 
         <http url="${startUrl}"/> 
        </html-to-xml> 
       </xpath> 
      </list> 

      <!-- downloads each article and extract data from it --> 
      <body> 
       <xquery> 
        <xq-param name="doc"> 
         <var name="articleUrl"/> 
        </xq-param> 
        <xq-expression><![CDATA[ 
         declare variable $doc as node() external; 
         $doc 
        ]]></xq-expression> 
       </xquery> 
      </body> 
     </loop> 

     <![CDATA[ </newyourk_times> ]]> 
    </file> 

</config>