【问题标题】:How do I use proxies with OpenURI?如何在 OpenURI 中使用代理?
【发布时间】:2013-05-26 17:22:26
【问题描述】:

我正在尝试抓取一个网站,但我需要使用代理才能不被禁止。

proxies.each do |proxy|
  proxy.delete '""'
  break if @doc = Nokogiri::HTML(open(pre, :proxy => proxy )) rescue nil
end

我在proxies 数组中有一个工作代理列表。 pre 是 URL。我没有从这段代码中得到回应,只是零。如果我用下面的代码替换它,它可以工作,但它有 IP 禁令的风险:

doc = Nokogiri::HTML(open(pre))

有什么想法吗?

【问题讨论】:

  • 你能分享数组proxies吗?它看起来怎么样?
  • 我确定它的格式是 'ip:port'
  • Nokogiri 不关心代理或知道 HTTP,所以这个问题甚至不应该提及它。问题在于您对 OpenURI 的使用。减少您的示例代码,直到 Nokogiri 没有问题并且问题仍然存在。重写您的问题以准确反映当时的代码和问题。照原样,你的问题只是表明你不知道你的代码是如何工作的。

标签: ruby proxy open-uri


【解决方案1】:

问题出在代理的定义中。不幸的是,由于您没有向我们展示您的代码的完整示例,因此我们无法为您提供帮助。

记录了正确的定义:http://www.ruby-doc.org/stdlib-2.0/libdoc/open-uri/rdoc/OpenURI/OpenRead.html

【讨论】:

  • 谢谢,我会检查文档。是的,我是这种工作的初学者。我从 csv 文件中获取代理,我将它们格式化为“ip:port”,然后将它们添加到代理列表中。我会尽快添加代码示例。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-04-20
  • 1970-01-01
  • 2021-09-29
  • 2021-09-10
  • 2014-04-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多