我不知道这是一个简单或复杂的问题(或者之前是否曾被问过)。我正在尝试在浏览器中打开一个网页,比如google.com,然后使用jquery来抓取/修改这些元素。以下是我的代码:
$scope.populateUrl = function () {
var openWindow = function () {
return $q(function (resolve, reject) {
resolve(window.open('https://www.google.com'))
})
}
openWindow().then(function (wnd) {
console.log(wnd.document)
var inputs = wnd.document.getElementsByTagName('input')
console.log(inputs)
})
}
我觉得这应该是一个非常简单的问题,但当我控制日志wnd.document时,我得到:
#document
<html>
<head></head>
<body></body>
</html>
输入变量为空。 wnd.document不应该是谷歌的HTML吗?如果它有所作为我正在为这个项目使用Node。
答案 0 :(得分:0)
我可以从$scope
了解到你在客户端编写angularjs。
您正尝试使用您用户的Cookie从您的网站获取google.com。那么为什么不在之后获得paypal.com并查看用户的余额是什么或进行一些转移?如果您了解这是否可能会导致巨大的安全问题。
无论如何,你要做的事情是不可能的。
您可以尝试向您想要的网站发送获取请求,如果此网站允许通过访问控制允许来源,您可以获得所需的响应。
虽然如果您只想抓取一个站点并从中获取一些数据,您应该在服务器端执行此操作。有几个模块可以做到:https://github.com/cheeriojs/cheerio 或者整个程序特定于:http://docs.casperjs.org/en/latest/quickstart.html