【问题标题】:How to change User Agent in YQL?如何在 YQL 中更改用户代理?
【发布时间】:2014-01-03 13:23:45
【问题描述】:

我正在尝试使用此数据表示例中的代码更改用户代理:https://github.com/yql/yql-tables/blob/master/data/data.headers.xml

req = y.rest(url);
req.header('User-Agent', ua);

但是好像不行,我的服务器收到Http Header:YahooCacheSystem

是否可以在 YQL 中更改 UA?

【问题讨论】:

    标签: yql


    【解决方案1】:

    您可以通过传递ua 参数来更改用户代理,例如:

    use "<your_table_execute_key>" as data_headers; select * from data_headers where url="http://www.amazon.com/" and ua="Mozilla/5.0 (iPhone; CPU iPhone OS 9_1 like Mac OS X) AppleWebKit/601.1.46 (KHTML, like Gecko) Version/9.0 Mobile/13B143 Safari/601.1"
    

    话虽如此,传递 UA 似乎不会对返回的 HTML 内容产生影响,至少对于使用上面的示例查询的 Amazon 而言——我期望通过传递 iPhone UA 来获得移动版本字符串,但事实并非如此。

    更新:传递 iPhone UA 字符串适用于 http://www.yahoo.com/(我得到了移动版本),所以它可能不适用于亚马逊,因为它需要另一个我们没有为移动设备设置的 HTTP 标头。

    【讨论】:

    • 感谢您的回答! Keep in mind that the open table you're using is to get the server's headers, not set them. 是什么意思?设置ua或不设置有什么不同?
    • @andyf 我想我误解了你的问题,所以这就是我包含该声明的原因。感谢您的澄清;我已经删除了它,并根据我自己的经验在ua 参数上添加了一条注释,现在刚刚尝试过。
    • 感谢您的更新。也许它只适用于雅虎提供的服务。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多