ruby-on-rails – 使用`open-uri`用逗号打开WIKI URL
发布时间:2020-12-17 03:26:05 所属栏目:百科 来源:网络整理
导读:我正在运行OpenURI :: HTTPError:403 Forbidden错误 当我尝试用逗号(或其他特殊字符,如.)打开URL时. 我可以在浏览器中打开相同的URL. require 'open-uri'url = "http://en.wikipedia.org/wiki/Thor_Industries,_Inc."f = open(url)# throws OpenURI::HTTPEr
我正在运行OpenURI :: HTTPError:403 Forbidden错误
当我尝试用逗号(或其他特殊字符,如.)打开URL时. 我可以在浏览器中打开相同的URL. require 'open-uri' url = "http://en.wikipedia.org/wiki/Thor_Industries,_Inc." f = open(url) # throws OpenURI::HTTPError: 403 Forbidden error 我如何逃避这样的URL? 我试图用CGI :: escape来逃避网址,我得到了同样的错误. f = open(CGI::escape(url)) 解决方法
通常,只需要模块cgi,然后使用CGI :: escape(str).
require 'cgi' require 'open-uri' escaped_page = CGI::escape("Thor_Industries,_Inc.") url = "http://en.wikipedia.org/wiki/#{escaped_page}" f = open(url) 但是,这似乎不适用于您的特定实例,仍然返回403.无论如何,我将留在此处作为参考. 编辑:维基百科拒绝您的请求,因为它怀疑您是机器人.似乎某些明确内容的页面被授予您,但那些与其“安全”模式不匹配的页面(例如包含点或逗号的页面)将受到筛选.如果您实际输出内容(我使用Net :: HTTP执行此操作),您将获得以下内容:
但是,提供用户代理字符串可以解决问题: open("http://en.wikipedia.org/wiki/Thor_Industries,_Inc.","User-Agent" => "Ruby/#{RUBY_VERSION}") (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |