使用Ruby进行屏幕抓取和代理

时间:2012-09-21 17:26:28

标签: ajax proxy screen-scraping erb

我知道这里有几个屏幕抓线程,但没有一个答案让我很满意。

我正在尝试使用javascript从外部网页抓取HTML。我使用$ .ajax,一切都应该正常。这是我的代码:

$.ajax({
    url: "my.url/path",
    dataType: 'text',
    success: function(data) {
        var myVar = $.get(url);
        alert(myVar);
    }
});

唯一的问题是它正在我的Web服务器中查找指定的URL。如何使用代理访问外部网页?

1 个答案:

答案 0 :(得分:0)

由于跨站点脚本限制,您将不得不将所需的URL传递到服务器上的页面,该页面将从服务器端查询相关URL,然后将结果返回给您。看看下面的线程并将其合并到您的应用程序中,并在您的AJAX函数命中该页面时让它返回源。

How to get the HTML source of a webpage in Ruby

使用GET请求是转移您要获取服务器的网页的最简单方法,因此您可以调用以下内容:

$.ajax("fetchPage.rb" + encodeURI(http://www.google.com))

由于您无法直接从服务器访问相关方,因此您必须通过代理管道服务器端脚本以使请求正常工作,这实际上取决于您的设置。看一下Ruby中的Proxy类:

http://ruby-doc.org/stdlib-1.9.3/libdoc/net/http/rdoc/Net/HTTP.html#method-c-Proxy