起きている問題
正しい値を引っ張ってこなくなりました。
自分の中で調べてみた感じだとUserAgent
を変更しないといけないという結論に至りました。
▼使用してたコード
"F7:F110"にはfetchしたいURLを予め置いてます。
GAS
1function test() { 2 var spreadsheetObj = SpreadsheetApp.getActiveSpreadsheet(); 3 var sheet = spreadsheetObj.getSheetByName("シート1"); 4 var LOGIN_URLS = sheet.getRange("F7:F110").getValues(); 5 6 var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); 7 var sheet2 = spreadsheet.getSheetByName("シート2"); 8 9 for (var i = 0; i < LOGIN_URLS.length; i++){ 10 var lastrow = sheet2.getLastRow(); 11 var responses = UrlFetchApp.fetch(LOGIN_URLS[i]); 12 var data = responses.getContentText(); 13 var csv = Utilities.parseCsv(data); 14 sheet2.getRange(lastrow+1, 1, csv.length, csv[0].length).setValues(csv); 15 16} 17}
▼エラーで返ってくる
ReturnError
1<html dir="ltr"><head><style> 2html { 3 font-family: "Helvetica Neue" 4} 5 6body { 7 font-size: 12px; 8 margin: 0; 9 padding: 0; 10 height: 100%; 11} 12 13a { 14 text-decoration: none; 15 color: inherit; 16 cursor: pointer; 17} 18 19h1 { 20 margin-left: 30px; 21} 22 23.nav { 24 width: 100%; 25 border-bottom: 1px solid #ccc; 26 border-collapse: collapse; 27 font-size: 13.33px; 28} 29 30.nav td { 31 padding: 0; 32} 33 34.nav .navText { 35 color: #00c; 36 display: inline-block; 37 padding: 9px 12px; 38} 39 40.nav .navText .selected { 41 color: #000; 42 font-weight: bold; 43 text-decoration: none; 44} 45 46.body { 47 background: #eee; 48 color: #000; 49 font-size: 13px; 50 font-weight: bold; 51 margin: 40px 100px; 52 padding: 30px; 53} 54 55.body a { 56 color: #00c; 57 text-decoration: underline; 58} 59 60.footer { 61 color: gray; 62 margin: 100px 0 0 0; 63 padding: 10px; 64 width: 98%; 65 bottom: 0; 66} 67 68.footer a { 69 color: #77c; 70} 71 72.footer .right { 73 float: right; 74} 75</style></head><body><table class="nav"><tbody><tr><td><div><span class="navText"><a href="https://www.indeed.com">Find Jobs</a></span><span class="navText"><a href="https://www.indeed.com/resumes">Find Resumes</a></span><span class="navText"><a href="https://ads.indeed.com/job/ads">Employers</a></span><span class="navText"><a href="/" class="selected">Analytics</a></span></div></td></tr></tbody></table><h1>Indeed Analytics (beta)</h1><div class="body"><p>It seems like you’re using an older version of your browser. For the best experience 76function unsupportedAccessCookie() { 77 var date = new Date(); 78 date.setTime(date.getTime() + (7 * 24 * 60 * 60 * 1000)); 79 document.cookie = "unsupportedAccess=1;expires=" + date.toUTCString() + ";path=/"; 80} 81</script></body></html>
▼本来返ってくる値
該当企業の広告運用の当月データ
試したこと
UserAgent
を変更してみました。
function test() { var spreadsheetObj = SpreadsheetApp.getActiveSpreadsheet(); var sheet = spreadsheetObj.getSheetByName("シート1"); var LOGIN_URLS = sheet.getRange("F7:F110").getValues(); var spreadsheet = SpreadsheetApp.getActiveSpreadsheet(); var sheet2 = spreadsheet.getSheetByName("シート2"); var postheader = { "useragent":"Mozilla/5.0", "accept":"gzip" } var parameters = { "method":"get", "muteHttpExceptions": true, "headers": postheader } for (var i = 0; i < LOGIN_URLS.length; i++){ var lastrow = sheet2.getLastRow(); var responses = UrlFetchApp.fetch(LOGIN_URLS[i],parameters); var data = responses.getContentText(); var csv = Utilities.parseCsv(data); sheet2.getRange(lastrow+1, 1, csv.length, csv[0].length).setValues(csv); } }
返ってくる結果は同じだったので、失敗でした。
知りたいこと
UserAgent
を変更してfetchする方法になります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/11/01 03:04