我目前正在努力废除以下网站: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页面(经过多次尝试)。
然而,导航器工作正常,没有任何问题(即使在清空缓存时)快速显示网站。
我目前正在使用Ruby2.4.0,并且在两个不同的位置尝试过archlinux ( manjaro )和debian ( windows 10中的ubuntu )的代码(以确保我的IP不是问题)。
我还在每个打开之间放置了一个睡眠(0.5秒),以避免被过多的请求阻塞。
我对curb的创业板也有同样的问题。
require 'curb'
html = Curl.get(link)既然导航器(试过firefox和for )工作得很好,我应该试着模仿它们(例如,通过模仿它们)吗?还是有更简单的解决方案( gem /其他方式使用open /.)?
发布于 2017-02-28 20:41:08
首先,您并没有清楚地确定您的浏览器比ruby open-uri更快。
无论如何,有几种可能性:
第一批测试(在您了解了如何确定“速度”与浏览器之间的关系之后)将是尝试使用与浏览器相同的用户代理,并可能让浏览器使用您在ruby中使用的相同的用户代理。
https://stackoverflow.com/questions/42497356
复制相似问题