95720


ライブラリにPerserを追加して、以下のコードでスクレイピングを行ったところ、取得した情報がObject型になっていて、getvalue();や.toStringを用いてString型に変換しようとしても変換できませんでした。

よって正規表現による文字列の抽出や変換ができないのですが、どなたかString型に変換する方法に心当たりはありませんか？

これら郵便番号やホームページの順番がバラバラなので、文字列型にしたうえで、正規表現による検索を行いたいと考えています。  
Splitメソッドを使用したのは、このように、配列にしたうえで、電話番号、住所など判断して、一つずつ貼り付けることができないか期待していました。

[code]

    function Scrapcontact() {
      var spreadsheet = SpreadsheetApp.getActive();
      var sheetURL  = spreadsheet.setActiveSheet(spreadsheet.getSheetByName('URL貼り付け'), true);
      var sheetWork  = spreadsheet.setActiveSheet(spreadsheet.getSheetByName('ペースト&作業用シート'), true);
      
    for(i=2; i<=11; i++){
      var r   =  i   -    1;
      let URL = sheetURL.getRange('B'  +   i).getValue();
      let response = UrlFetchApp.fetch(URL);
      let content = response.getContentText("utf-8");
      var contact= Parser.data(content).from('<td class="sameSize" id="accessInfoListDescText110">').to('</td>').iterate();
      sheetWork.getRange('E'  +   r).setValue(contact);
      var Contact2 = sheetWork.getRange('E'  +   r).getValue();
    
    
    
      var strContact = Contact2.split('<br/>',8);
      
      console.log(strContact);
       console.log(typeof(strContact));
    }
    }
    
[/code]

これによって生成される情報は以下のようになります  
例

[code]

    13:41:21    情報  [ '〒111-0000 東京都十鬼田区王魔市111　王魔ビル',
      '【採用チーム】山下一夫（やましたかずお）',
      'お問い合わせ電話番号　000-0000-0000',
     '',
      '※採用に関するお問い合わせはメールにてお願いいたします。',
      '【MAIL】kennganntougishamotomu@antamoyarukai.jp' 
     '【ホームページ】http://antamooretoyarukai',]
    13:41:21    情報  object
    13:41:22    情報  [ '東京都真柏連合ビル77 真柏連合',
      'お問い合わせ電話番号　000-0000-0000',
     '〒111-1111 ',
      '※採用に関するお問い合わせはメールにてお願いいたします。',
      '【MAIL】shinpakurenngo_shinainalsoutosama@hometataeyo.uyamae.soshitegebokutonarunoda' 
     '【ホームページ】http://antamooretoyarukai',
     '【採用チーム】白濱健一　白濱未海',]
    13:41:21    情報  object
    
[/code]

このようにコードを追記しましたが、やはりString型として認識されていないためか、execメソッドもmatchメソッドも機能しませんでした。  
そのままセルに貼り付けることはできても、特定の一文のみを正規表現で抽出してセルに貼り付けることができない状態です

[code]

      var Postcode = Contact2.exec( /\d/);
    
      console.log(Contact2);
      console.log(Postcode);
    
[/code]

* * *

[![期待していた動作](https://i.stack.imgur.com/6xpjr.png)](https://i.stack.imgur.com/6xpjr.png)


CC BY-SA 4.0
2023-07-20T04:54:25.433
95703
2023-07-21T07:07:55.260
2023-07-21T06:33:49.007
58928
58928
question
google-apps-script web-scraping google-spreadsheet
Object型の変数をString型に直したい


`strContact`は文字列の配列なので、`for` などでその配列要素を処理するのが良いでしょう。

[code]

    for (let str of strContact) {
      if (str.match(/\d{3}-\d{4}/)) {
        ...
    }
    
[/code]

* * *

型を調べるときは、`typeof(strContact)` よりは `strContact.constructor.name`
の方がわかりやすい結果になります。


CC BY-SA 4.0
2023-07-21T07:07:55.260
95720
2023-07-21T07:07:55.260
3475
95703
answer