質問: searchBy(rootHtml, '"sales_rank":{"point_number":1,"sum":', ',"', ',"30":{"sales_rank":', 5000) values[ki].push(salesRank || '該当データ無し') // 2秒~5秒スリープ if (ki !== (keys.length - 1)) { Utilities.sleep(2000 + Math.floor(Math.random() * (2999)) + 1) } currentRowIndex++ } // 一括でインサート if (values && values[0]) { sheetData.getRange(SEARCH_START_LOW, SEARCH_COL_INDEX + 1, values.length, values[0].length).setValues(values) } } ```
回答: URLFETCHAPPで取得したものをファイルに書いて確認したところ > > ○【抽出可能】画像のURL > > ×【抽出不可能】画像の横の『ホーム&キッチン』のテキスト > > ×【抽出不可能】画像の横の『参考価格』のテキストの横の『918』の数字 > > ×【抽出不可能】画像の横の『JAN:』のテキストの横の『4973307393778』の数字 > > ○【抽出可能】画像の下のdl要素の中の新品の行の最安値の『1415』の数字 > > ×【抽出不可能】画像の下のdl要素の中の新品の行のコスト計算の『845』の数字 > > ○【抽出可能】画像の下のdl要素の中のカート価格の行の最安値の『1480』の数字 > > ×【抽出不可能】画像の下のdl要素の中のカート価格の行のコスト計算の『845』の数字 > > ○【抽出可能】画像の下のdl要素の中の新品の行の出品者数の『6』の数字 > > ×【抽出不可能】画像の下のdl要素の中の新品の行の12ヵ月の販売数の『30個』のテキスト > > > のうち > > ×【抽出不可能】画像の横の『ホーム&キッチン』のテキスト > > ×【抽出不可能】画像の横の『参考価格』のテキストの横の『918』の数字 > > ×【抽出不可能】画像の横の『JAN:』のテキストの横の『4973307393778』の数字 > > > のところはデータにありました。 ``` function q180017() { var values = []; const url = "https://mnrate.com/item/aid/B076KF452D"; // 項目1 ← 抽出できているパターン const rootHtml = UrlFetchApp.fetch(url).getContentText(); //SpreadsheetApp.getActiveSheet().getRange(12,1).setValue(rootHtml); var hogeHoge = searchSheet(rootHtml, 'value="','"', 'id="history_data_image_path"',5000) values.push(hogeHoge || '該当データ無し'); // 項目2 ← 抽出できていないパターン(htmlに書き出されている情報が拾えていません) var hugaHuga = searchSheet(rootHtml, '"data_category">','', 5000) values.push(hugaHuga || '該当データ無し') var sankoukakaku = searchSheet(rootHtml, 'class="_reference_price_color">', '', 5000); values.push(sankoukakaku.trim() || '該当データ無し') var jan = searchSheet(rootHtml, 'JAN: ', 5000); values.push(jan || '該当データ無し') Logger.log(values); // 項目3 ← 抽出できているパターン // var salesRank = searchBy(rootHtml, '"sales_rank":{"point_number":1,"sum":', ',"', ',"30":{"sales_rank":', 5000) // values.push(salesRank || '該当データ無し') // Logger.log(values); } ``` このようにして抽出可能でした。 一方845,30個のあたりは、HTMLを見てもなさげだったので、後から(動的に、ajaxとかで)取っている可能性もあると思います。 その場合、urlfetchでは取れないので、あきらめるしかないです。