我目前正在努力废弃以下网站:http://mangafox.me并且遇到开放问题:
以下代码适用于大多数网站,但我遇到了mangafox的问题:
require 'open-uri'
html = open('http://mangafow.me', 'User-Agent' => "Ruby/#{RUBY_VERSION}")
我从https://google.com和大多数测试网站获得了非常快速的响应,但是继续在http://mangafox.me上获取OpenTimeout异常,并且有时只会获得html页面(经过多次尝试)。
然而,导航器工作得很好,并且没有问题(即使在清空缓存时)也很快显示网站。
我目前正在使用Ruby 2.4.0,并且已经在两个不同的位置尝试了archlinux(manjaro)和debian(windows 10中的ubuntu)上的代码(以确保我的IP不是问题)。 /> 我还在每次打开之间进行了一次睡眠(0.5秒),以避免因做太多请求而被阻止。
我对curb
gem
require 'curb'
html = Curl.get(link)
由于导航仪(尝试过firefox和chrome)完美运行,我应该尝试模仿它们(例如通过仿真)吗?或者是否有更简单的解决方案(宝石/其他方式使用open / ...)?
答案 0 :(得分:1)
首先,您并没有明确表示您的浏览器是如何确定您的浏览器比ruby open-uri更快。
无论如何,有很多可能性:
首批测试之一(在您明确了如何确定"速度"与浏览器之后)将尝试使用与浏览器相同的用户代理,并且可能还有浏览器使用您在ruby中使用的相同用户代理。