Ruby 打开速度比web导航器慢
我目前正在努力废弃以下网站:并且我的open存在问题: 以下代码适用于大多数站点,但我对mangafox有问题:Ruby 打开速度比web导航器慢,ruby,open-uri,Ruby,Open Uri,我目前正在努力废弃以下网站:并且我的open存在问题: 以下代码适用于大多数站点,但我对mangafox有问题: require 'open-uri' html = open('http://mangafow.me', 'User-Agent' => "Ruby/#{RUBY_VERSION}") 我从和大多数测试站点得到了非常快速的响应,但是不断地出现OpenTimeout异常,有时只会得到html页面(经过多次尝试) 但是,导航器工作正常,并且没有问题(即使在清空缓存时)快速显示网站
require 'open-uri'
html = open('http://mangafow.me', 'User-Agent' => "Ruby/#{RUBY_VERSION}")
我从和大多数测试站点得到了非常快速的响应,但是不断地出现OpenTimeout异常,有时只会得到html页面(经过多次尝试)
但是,导航器工作正常,并且没有问题(即使在清空缓存时)快速显示网站
我目前正在使用Ruby 2.4.0,并在两个不同位置的archlinux(manjaro)和debian(windows 10中的ubuntu)上尝试了该代码(以确保我的IP不是问题)。我还将睡眠(0.5秒)设置在每次打开之间,以避免因执行太多请求而被阻止 我也有同样的问题,与
遏制
宝石
require 'curb'
html = Curl.get(link)
既然导航器(试用过的firefox和chromium)工作得很好,我应该试着模仿它们吗(比如通过模仿一个)?或者有更简单的解决方案(gem/使用open/…)吗?首先,你没有弄清楚你是如何确定你的浏览器比ruby open uri更快的 无论如何,有许多可能性:
第一个测试之一(在您清楚如何确定“速度”与浏览器的对比后)将尝试使用与您的浏览器相同的用户代理,也可能让浏览器使用与您在ruby中使用的相同的用户代理。尝试使用已知的快速链接,如
http://example.com
。工作正常。我只针对mangafox出现问题。测试前是否尝试清空浏览器缓存?Beca使用此差异可能只是缓存的结果。对于所有用户代理来说,站点可能都很慢,而您只看到了缓存在浏览器中的差异。是的,使用新安装的chromium而不是Firefox,您可能会因为请求太多而受到速率限制。非常感谢anwser,这里有很多事情我确实没有检查。我将用我如何确定速度的新信息编辑问题。我如何获得网站使用的协议?我如何更改用户代理?用你给我的信息更新问题(谢谢)。其中一些是不同的问题,可能应该以这样的方式发布(在彻底的谷歌搜索之后)。您可以直接在源代码中更改用户代理,您可以在其中指定它。:)我已经这样做了,但没有用,可能是因为我不知道要放什么(尝试复制firefor发送的内容)这将是一个很好的测试。如果你将它设置为firefox用户代理,并且它没有改变任何东西,那么速度问题可能不是基于用户代理的。