2016-04-08 12 views
1

Google Appsスクリプトを使用して、HTMLという非常に構造の悪いウェブサイトからデータを抜き取る必要があります。XmlService.parse()は解析できません。Google Apps Scriptでは、検証されないほどひどく構造化されたHTMLを解析する方法はありますか?

"ドキュメント"の外観は次のとおりです。私は多くの行を取り除きましたが、構造を保持しています。

<html> 
<head> 
    <link href="css/bootstrap.min.css" rel="stylesheet"> 
    <title> Funny Site </title> 
</head> 
<body> 

<!DOCTYPE html> 
<html> 
<title> Funny Site</title> 
<head> 
<meta charset="utf-8"> 

    </head> 
    <body> 
    <div class="mainhead"> 
     <div class="leftHead"> 
     </div> 

<script> 
    $(document).ready(function(){ 
    //$(".overlay").show(); 
    }); 
</script> 
<div class="contain"> 

    <div class="maine"> 
     </div> 

    <div class="maine2"> 

<div class="footer1">   

<div class="footer2"> 
    <div class="data"> 
     <div class="dc"> 
      <div class="smalltxt">Field1</div> 
      <div class="largetxt">value1</div> 
     </div> 
     <div class="dc"> 
      <div class="smalltxt">Field2</div> 
      <div class="largetxt">value2</div> 
     </div> 
     <div class="dc"> 
      <div class="smalltxt">Field3</div> 
      <div class="largetxt adjFont" id ="someId">value3</div> 
     </div> 
     <div class="dc" > 
      <div class="smalltxt">Field4</div> 
      <div class="largetxt adjFont">value4</div> 
     </div> 
     <div class="dc" style="border:none;"> 
      <div class="smalltxt">Field5</div> 
      <div class="largetxt">value5</div> 
     </div> 
    </div> 
</div>  
</body> 
</html>  

私がつかむしたいデータは、クラスdatadivvalue5value1です。

少なくともdataクラスを取得するにはどうすればよいですか?私が思いつくことができるのは正規表現を適用することだけですが、それよりも良い方法がありますか?

+1

正規表現でチュートリアルやテスターをチェックアウトすることができます。 XmlServiceで解析するのに十分な、ドキュメントの一部を抽出するハイブリッドアプローチがあります。 –

答えて

-2

XSLTを実装してみることもできます。ウィキペディアから

XSLT(拡張スタイルシート言語変換)は、他のXML文書にXML文書を変換するための言語 である、またはそのようなWebページのHTML、プレーンテキストとしてまたはに他の フォーマットXSLフォーマット オブジェクト。

属性、値、または変更する要素を削除または変更することができます。

あなたはそれがある悪名高いw3schools site

+1

HTMLがとても混乱していて、遠くにあるXMLには解析できないので、これがどのように機能するのかわかりません。このサイトを表示できるだけのブラウザの慈悲です。私ができることは、文字列の一部を '' split() ''と '' replace() ''することで、必要な値を釣り上げるための正規表現パターンを使用することです。現在、これはうまくいきますが、将来の参考として、私はこの質問を調べて、ブルートフォースストリングの操作より優れたものがあるかどうかを見たいと思っていました。 –

+0

XSLTは、あなたがしようとしていることを行うことができます。それはあなたがそれをチェックしようとしなかったようです。 – SwagBomb

関連する問題