gasを用いたサイトのスクレイピングについて

実現したいこと

ここに実現したいことを箇条書きで書いてください。

前提

gasでサイトのスクレイピングを行い、タイトルなどの要素を抽出したいです。
ライブラリはParseを用いています。
ページが存在している場合はちゃんと回ってくれます。
for文内でiが変わると別のページにアクセスするようになっていますが、アクセス先のページが消えている時にうまく抜け出せないです。
エラーを回避するためにgetResponseCodeが404の時はループを抜け、次のループに入るようにしているのですがうまくいきません。

発生している問題・エラーメッセージ

Exception: Request failed for https://www.ABC.com returned code 404. Truncated server response: <!DOCTYPE html><html lang="ja"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width"/><meta name="next-head-count" conten... (use muteHttpExceptions option to examine full response)

該当のソースコード

JavaScript

1for(i = 1460004; i <= 1462999; i++){2 const url ="https://www.ABC.com/xxx/"+i;3 var response = UrlFetchApp.fetch(url);4 console.log(response);5 6 // レスポンスコードが 404 の場合、スキップする7 console.log(response.getResponseCode());8 if (response.getResponseCode() == 404) {9 return;10 }else{11 var content = response.getContentText("utf-8");12 var text = Parser.data(content).from('<h1 class="ABC">').to('</h1>').iterate();13 console.log(text) 14 }

試したこと

おそらく、特定のページ(消されているページ)に対してフェッチを行った際に、うまくフェッチができていないのが課題かと思っています。
console.log()でResponseCodeを見ても404が表示されることはないので。

コメントを投稿

0 コメント