如何修改Ruby中的头文件来复制Firefox?

时间:2011-04-30 06:38:24

标签: ruby http header

我正在尝试创建一个自动化工具,我希望我的脚本可以模拟类似Firefox的标题。目前正在进行HTTP get将具有最小数量的标头。我相信方法,主持和接受。

这是我现在正在使用的方法:

def fetch(url_str, limit = 10)
    raise ArguementError, 'HTTP redirect too deep' if limit == 0

    res = Net::HTTP.get_response(URI.parse(url_str))

    case res
    when Net::HTTPSuccess then
        $dpage += res.body
    when Net::HTTPRedirection then 
        $dpage += fetch(res['location'], limit - 1)
    else
        puts res.error!
    end
end

如何将此更改为更多标题?或者甚至修改已经存在的“接受”?

我尝试过使用“Net :: HTTP :: Get.add_field”的方法,但它导致主机发出“错误请求”响应。

当我分析数据包时,我可以看到原因。标题不正确。不按照我在代码中添加它们的顺序。

有什么想法吗?

2 个答案:

答案 0 :(得分:0)

你应该研究Typhoeus这样的东西,它有nice API来处理这些事情。

答案 1 :(得分:0)

您可以尝试mechanize