Javascript 如何在线操作网站?

Javascript 如何在线操作网站?,javascript,jquery,dom,Javascript,Jquery,Dom,我需要从另一个网站抓取内容,并在我的网站上显示该内容。困难的是,我需要的内容是生成的,所以我需要提供输入,并在获得我需要的内容之前单击其他网站上的按钮。我已经找到了可以做到这一点的在线应用程序,我想知道他们是如何做到这一点的。这些网站: 地塞米松 import.io 上述网站将目标网站加载到用户的浏览器窗口中,然后使用一些脚本键入输入并单击按钮。我试图通过资源监视器查看他们的源代码,但没有成功。你到底是怎么做到的: 将另一个网站加载到用户的浏览器中(可能是iframe?) 类型输入 点击按钮

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

  • 地塞米松
  • import.io
上述网站将目标网站加载到用户的浏览器窗口中,然后使用一些脚本键入输入并单击按钮。我试图通过资源监视器查看他们的源代码,但没有成功。你到底是怎么做到的:

  • 将另一个网站加载到用户的浏览器中(可能是iframe?)
  • 类型输入
  • 点击按钮

  • 我不知道是否有什么东西可以做到这一点。Selenium Webdriver不提供客户端功能。也许是PhantomJS或其他DOM操作工具?我需要一个地方开始,并将感谢任何指导,谢谢

    如果您对编写PHP感到满意,您可以考虑这样做。它的实现非常简单,可以单击链接、输入输入等,文档也很不错。

    如果您对编写PHP感到满意,您可以研究一些东西。它的实现非常简单,可以单击链接、输入输入等,文档也很不错。

    如果您发出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);

    添加按钮和脚本 添加一些按钮很容易——只需添加一个HTML容器作为文本,在响应文本的末尾添加一个模糊ID,包括按钮的HTML。您必须使用更强的
    z-index
    ,保留容器的功能。脚本可以添加到任何地方,但是最好在响应文本的末尾添加它们

    iframe.contentWindow.document.write(“#(我的)容器{z-index:99999;}你好”)


    如果站点修改其页面正文,您的容器可能会消失,或者事件可能会出现问题,但没有站点这样做,只有混乱的站点。

    如果您发出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);

    添加按钮和脚本 添加一些按钮很容易——只需添加一个HTML容器作为文本,在响应文本的末尾添加一个模糊ID,包括按钮的HTML。您必须使用更强的
    z-index
    ,保留容器的功能。脚本可以添加到任何地方,但是最好在响应文本的末尾添加它们

    iframe.contentWindow.document.write(“#(我的)容器{z-index:99999;}你好”)


    如果站点修改其页面正文,您的容器可能会消失,或者事件可能会出现问题,但没有站点这样做,只有混乱的站点。

    从客户端无法做到这一点。想象一下,一个网站将你重定向到一个银行账户,突然点击登录,然后窃取数据——这是一个好点子!也许是服务器端?我只想知道dexi.io或import.io是如何在客户端浏览器窗口中键入值并单击按钮的。使用服务器端的selenium确实是可能的,但从客户端无法做到这一点。想象一下,一个网站将你重定向到一个银行账户,突然点击登录,然后窃取数据——这是一个好点子!也许是服务器端?我只想知道dexi.io或import.io是如何在客户端浏览器窗口中键入值并单击按钮的。使用server endNice中的selenium确实是可能的!您是否知道如何单击按钮,或者这是唯一可能的服务器端?@RayLi在响应文本中添加HTML按钮,然后在响应文本中添加一个外部脚本,如HTML
    script
    。我建议将它们添加到一个容器中,比如>
    x
    ,我做了更多的挖掘,并弄清楚了dexi.io是如何完成它的功能的。显然,我应该在客户端操作DOM对象的只是一个正面接口。所有的工作实际上都是在后端完成的。Dexi.io获取请求的站点,然后将其自定义代码注入页面,使其看起来像脚本在客户端操作对象一样:-P有点像你的建议。太好了!您是否知道如何单击按钮,或者这是唯一可能的服务器端?@RayLi在响应文本中添加HTML按钮,然后在响应文本中添加一个外部脚本,如HTML
    script
    。我建议将它们添加到一个容器中,比如>
    x
    ,我做了更多的挖掘,并弄清楚了dexi.io是如何完成它的功能的。显然,我应该在客户端操作DOM对象的只是一个正面接口。所有的工作实际上都是在后端完成的。Dexi.io获取请求的站点,然后将其自定义代码注入页面,使其看起来像脚本在客户端操作对象一样:-P有点像你的建议。