如何在线操纵网站?

问题描述 投票:2回答:2

我需要从其他网站获取内容并在我的网站上显示该内容。难以理解的是,我需要的内容是生成的,所以在获得我需要的内容之前,我需要在其他网站上提供输入和点击按钮。我找到了可以做到这一点的在线应用程序,我想知道他们是如何做到的。这些网站:

  • 得悉.IO
  • import.IO

上述站点将目标网站加载到用户的浏览器窗口中,然后使用一些脚本键入输入和单击按钮。我试图通过资源监视器查看他们的源代码,但没有运气。世界上你怎么样:

  1. 将另一个网站加载到用户的浏览器中(可能是iframe?)
  2. 输入输入
  3. 单击按钮

我不知道是否有可以做到这一点的事情。 Selenium Webdriver不提供客户端功能。也许是PhantomJS或其他一些DOM操纵工具?我需要一个地方开始,并感谢任何指导,谢谢!

javascript jquery dom
2个回答
3
投票

如果你习惯于编写PHP,你可以查看像Gouette这样的东西。它实现起来非常简单,可以点击链接,输入输入等,文档很不错。


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);)。

Adding buttons and scripts

添加一些按钮很容易 - 只需在响应文本的末尾添加一个HTML容器作为带有模糊ID的文本,包括按钮的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>");

如果网站修改了他们的页面主体,您的容器可能会消失或者事件可能有问题 - 但没有网站会这样做,只有混乱的网站。

© www.soinside.com 2019 - 2024. All rights reserved.