2

open-uri を使用して、web 上のページからコンテンツを取得し、nokogiri で使用しています。私は次のようなことを試みています:

url = " http://pesquisa.bvsalud.org/portal/?output=site&lang=pt&from=0&sort=&format=summary&count=20&fb=&page=1&q= \"qualidade+de+vida\"&index=tw" response = open (URL)

次に、次のエラーが表示されます: URI::InvalidURIError: bad URI(is not URI?)

問題は、URI.encode(url) を使用して URL 内の一部の特殊文字を防止できることはわかっていますが、URL をサニタイズしても、要求している Web サイトが同じ応答を返してくれず、応答しません。二重引用符の代わりに '%22' を使用すると、適切に..

二重引用符を使用してそのような要求を行うにはどうすればよいですか? それができる他のライブラリはありますか?オープンウリはそれを認めません。gems addressable-uri と eat を使用しようとしましたが、両方で同じエラーが発生します。:/

4

1 に答える 1

4
URI.encode('http://pesquisa.bvsalud.org/portal/?output=site&lang=pt&from=0&sort=&format=summary&count=20&fb=&page=1&q=\"qualidade+de+vida\"&index=tw')
=> "pesquisa.bvsalud.org/portal/?output=site&lang=pt&from=0&sort=&format=summary&count=20&fb=&page=1&q=%5C%22qualidade+de+vida%5C&index=tw"
于 2013-09-11T04:32:14.040 に答える