LoginSignup
0
0

More than 3 years have passed since last update.

GASのスクレイピングについて教えていただきたいです

Posted at

プログラミングのスクレイピングについてです。
アプリブンのサイトから、アプリのURL、名前、会社名をスクレイピングしようとしていますが、以下のようなエラーコードがでてしまいます。

どうしたらいいでしょうか?よろしくお願いいたします。

Exception: https://app-liv.jp のリクエストに失敗しました(エラー: 404)。サーバー応答の一部: <!DOCTYPE html>

<met...(応答の全文を見るには muteHttpExceptions オプションを使用してください)(行 35、ファイル「コード」)詳細表示しない

//参照サイトhttp://www.initialsite.com/w01/14311
function scrapSample() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('シート1'); //
var getUrl = 'https://app-liv.jp/business/all/0002/popular/';

//UrlFetchApp.fetch() でトップページのURLへアクセス。getContentText() でトップページのテキストデータが取得
var content = UrlFetchApp.fetch(getUrl).getContentText('UTF-8');

//new RegExp で記事URLの正規表現をitemRegexp として作成します
//class=”applink”/正規表現/g のようにオプションにgを選択して、一致するものを全てをマッチさせるようにしています。
var itemRegexp = new RegExp(//g);

//content のうち、この条件にマッチした部分をitem に配列として格納
var item = content.match(itemRegexp);
var items = [];

//item に格納したURLはaタグやclass名がついたままなのでreplace() でURLの文字列だけにしたものをitemURL へ代入
for (var i = 0; i < item.length; i++) {
var itemURL = item[i]
.replace(' .replace(/"/g,'')
.replace(/class=c-app-card-block>/,'');

//items へpush() して二次元配列として格納します。
items.push([itemURL]);
}

var spanRegexp = new RegExp(/.*?<\/span>/);
var spans = [];

for (var j = 0; j < items.length; j++) {
//UrlFetchApp.fetch() で先ほどitems に格納した記事URLへアクセスし、取得したテキストデータをitemCont へ代入します。

var spanCont = UrlFetchApp.fetch(items[j],).getContentText('UTF-8');
var span = spanCont.match(spanRegexp)[0]
spans.push([span]);

}

//sheet.getRange() で範囲を指定し、setValues() 二次元配列に格納してある記事タイトルと記事URLを書き込みます。
sheet.getRange(2, 1, spans.length, 1).setValues(spans);
sheet.getRange(2, 2, spans.length, 1).setValues(items);
}

0
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0