我需要从其他网站获取内容并在我的网站上显示该内容。难以理解的是,我需要的内容是生成的,所以在获得我需要的内容之前,我需要在其他网站上提供输入和点击按钮。我找到了可以做到这一点的在线应用程序,我想知道他们是如何做到的。这些网站:
上述网站将目标网站加载到用户的浏览器窗口中,然后使用一些脚本键入输入和单击按钮。我试图通过资源监视器查看他们的源代码,但没有运气。世界上你怎么样:
我不知道是否有可以做到这一点的事情。 Selenium Webdriver不提供客户端功能。也许是PhantomJS或其他一些DOM操纵工具?我需要一个地方开始,并感谢任何指导,谢谢!
答案 0 :(得分:3)
如果您习惯于编写PHP,可以查看Gouette之类的内容。它实现起来非常简单,可以单击链接,输入输入等,文档也很不错。
答案 1 :(得分:2)
如果您发出Ajax请求,则会获取页面的HTML文本作为响应。例如:
var x = new XMLHttpRequest;
x.open('GET', 'URL_HERE', true);
x.onreadystatechange = function() {
if(this.readyState === 4) {
if(this.status === 200) {
alert(this.response);
}else if(this.status === 0) {
alert("NOT_ALLOWED: Can't cross this site URL.");
}else{
// Request error ; >= 500 || 404 || ...
}
}
}
x.send();
如果完成后请求状态为0,则不允许您访问其他站点。但是,可以访问一些。
因此,您可以将HTML文本设置为iframe内部(例如iframe.contentWindow.document.write(x.response);
)。
添加一些按钮很容易 - 只需在响应文本的末尾添加一个带有模糊ID的文本的HTML容器,包括按钮的HTML。您必须使用更强大的z-index
保留容器的特色。脚本可以添加到任何地方,但最好在响应文本的末尾添加它们。
iframe.contentWindow.document.write("<style>#_my_container_ {z-index: 99999;}</style><div id="_my_container_"><button>Hello</button><script type="text/javascript" src="..."></script></div>");
如果网站修改了他们的网页正文,您的容器可能会消失或者事件可能会出现问题 - 但没有网站会这样做,只会弄乱网站。