簡體   English   中英

如何從帶有大量重定向的 URL 下載文件

[英]How to download file from URL with a lot of redirects

我正在嘗試使用 Apps Script (JS) 將 XML 文件的內容從 URL 獲取到 Google Sheets

不幸的是 URL 有很多奇怪的重定向,我在服務器端對此沒有影響。 我需要在 JS 的身邊處理它。 在 Firefox 中我能夠正常下載文件,但在 JS 中這是一個挑戰。

幾天來我一直在尋找解決方案,但沒有任何幫助。 JS 就是無法獲取文件內容。

網址: https://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml : https://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml

我試過那些:

  • Goolge 表格單元格中的默認importXML ,如下所示:

=importXml("https://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml"; "//variant")

  • 網址獲取應用程序
function test(){
  var url = 'https://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml';
  var xml = UrlFetchApp.fetch(url,{'followRedirects': true, 'muteHttpExceptions': true}).getContentText();
  var jsonV = XML_to_JSON(xml);
  Logger.log(jsonV);
}
  • XML服務

var xml = XmlService.parse('https://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml',{'followRedirects': true, 'muteHttpExceptions': true});

  • 試過followRedirects && muteHttpExceptions truefalse

沒有任何幫助。

知道如何從這個 XML 獲取內容到 GoogleSheets 嗎?

以下代碼有效:

function getXml() {
  var response = UrlFetchApp.fetch(
    'http://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml?waluta=EUR',
    {
      headers: {Cookie: 'ip2loc=isset'}, 
    }
  );
  if (response.getResponseCode() == 200) {
    var content = response.getContentText();
    Logger.log(content.length);  // 1612024.0 in my test
  }
}

請注意,當 HTTP 響應代碼等於302時,上述 URL 取自第一個響應“Location”標頭。 相同的響應顯示了另一個標題:“Set-cookie:ip2loc=isset”。 我問這個cookie對於接收完整數據很重要,所以我們應該在請求中將它作為標頭實現。 確實,在更正 URL 並添加 cookie 標頭后,我們像任何瀏覽器一樣獲取 XML。

通過分析瀏覽器發送的請求,看來,你必須在請求頭中添加以下值

{'cookie': 'ip2loc=isset'}

所以你的函數看起來像這樣:

function myFunction() {
  var url = 'http://www.nife.pl/getfile-woocommerce/b55a488229b69d7c4ddf2a9f1a6b5dcb.xml';
  
  var response = UrlFetchApp.fetch(url, { headers : {'cookie': 'ip2loc=isset'}} ).getContentText();
  Logger.log(response);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM