javascript - YQL中可以添加UserAgent吗?

标签 javascript jquery yql

我正在使用cross-domain-ajax其中,使用的是YQL。
其中有这一行:

query = 'select * from html where url="{URL}" and xpath="*"';

所以我添加了用户代理,如下所示:

query = 'select * from html where url="{URL}" and xpath="*" and ua="Mozilla/5.0 (Linux; U; Android 4.0.1; ja-jp; Galaxy Nexus Build/ITL41D) AppleWebKit/534.30 (KHTML, like Gecko) Version/4.0 Mobile Safari/534.30"';

现在它不会再返回值了:(
我的主要 JavaScript 是这样的:

url = 'http://foofoofoofoofoofoo.com';
var content ='';
$.get(url, function(data){
  content = data.responseText;    
});

如何将用户代理添加到 YQL?
我之所以要这样做,是因为 HTML 源的内容根据所使用的用户代理而有所不同。

我想要使用智能手机访问时的 HTML 源代码。

最佳答案

在我看来,这是不可能的(至少对于非 HTML 数据来说)。

根据YQL reference ,YQL 访问 User-Agent Yahoo Pipes 2.0 下的“非 HTML”数据(即 css、xml 甚至 robots.txt!) .
请注意,它不关心“robots.txt”规则,因为它不是爬虫。
因此,当访问“HTML-Data”且 robots.txt 检查阻止 Yahoo Pipes 2.0 访问您的内容时,它将使用不同的用户代理获取目标页面:
Mozilla/5.0(Windows;U;Windows NT 5.1;en-US;rv:1.8.1.14)Gecko/20080404 Firefox/2.0.0.14

作为解决方法,您可以在使用 PHP 之间设置自己的代理,您可以查看 curl_setopt CURLOPT_USERAGENT (让 yahoo 托管的 YQL 查询您的代理)或在您的服务器上安装 YQL 版本(使其成为您的托管 YQL 并修改 API 以处理您的 UA 参数)。

关于javascript - YQL中可以添加UserAgent吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29345092/

相关文章:

javascript - 客户端服务器 REST API 验证码实现

javascript - switch 语句内的 ng-switch 按钮

javascript - 在scrollTop 中使用时,jQuery animate() 在 margin-left 上无法正常工作

javascript - 从 Instagram 抓取数据

javascript - 使用代理的 NodeJS 简单 UDP 客户端服务器应用程序

javascript - 如何使用 jquery 缓慢地设置 div 的宽度动画

javascript - 使用 tween() 根据内容对 div 的高度进行动画处理

javascript - 如何显示 JSON 数据中的图像 URL?

javascript - 使用YQL查询EDGAR公司备案报告

Python HTTP 错误 505 : HTTP Version Not Supported