【发布时间】:2013-02-25 12:54:14
【问题描述】:
是否可以更改与 Google Apps 脚本 UrlFetchApp.fetch 请求一起使用的用户代理字符串?
This discussion 从 2010 年开始暗示 Google Apps 脚本中的 UrlFetch 模块支持将 User-Agent 标头添加到可选的 headers 集合中,就像 Google App Engine 的 UrlFetch 模块一样。但是,the GAS documentation 对此一无所知。我制作的一个测试脚本也显示它不起作用。
测试脚本:
function testUserAgentString(){
var page;
try {
page = UrlFetchApp.fetch('http://www.myuseragent.net/',
{headers: {"User-Agent":
"Mozilla/5.0 (Windows; U; Windows NT 5.1; en-GB; rv:1.8.1.6) Gecko/20070725 Firefox/2.0.0.6"
}}).getContentText();
Logger.log(page);
} catch(_) {}
}
日志输出(减去无关的 HTML)是:
Mozilla/5.0 (compatible; GoogleDocs; script; +http://docs.google.com)
这是 GAS 执行 UrlFetch 请求时使用的默认用户代理字符串。
我是否遗漏了什么或做错了什么?
编辑:由于目前无法做到这一点,根据 Arun 的建议,我在问题跟踪器上添加了增强功能 request。
【问题讨论】:
-
您不会错过任何东西 - Apps 脚本使用自己的用户代理标头来处理传出请求。有什么改变它的理由吗?
-
是的。各种网站会根据使用的用户代理字符串更改其内容和布局。我要获取的网站,在使用默认 GAS UA 字符串时使用 Safari IOS 用户代理字符串和专有 SilverLight 视频播放器请求时提供 HTML5 视频。
-
我猜他们只是不想启用设置此标头。
标签: google-apps-script user-agent