我正在使用 open-uri 从网络页面获取内容以与 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" 响应=打开(url)
然后我收到错误:URI::InvalidURIError: bad URI(is not URI?)
问题是:我知道我可以使用 URI.encode(url) 来阻止 url 中的某些特殊字符,但是当我清理 url 时,我请求的网站不会给我相同的响应,它不会使用“%22”而不是双引号时无法正确回答。
如何使用双引号提出此类请求?还有其他库可以做到吗? Open-uri 不接受这一点。我尝试使用 gems addressable-uri 并 eat,但两者都出现相同的错误。 :/
最佳答案
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"
关于ruby - 在 open-uri 请求中使用特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18732034/