您好我使用宝石Nokogiri从ruby-toolbox中抓取宝石色调
Nokogiri::HTML(open("https://www.ruby-toolbox.com/categories/by_name"))
但我收到错误:" 403 Forbidden"
有人能告诉我为什么会收到此错误吗?
提前致谢
答案 0 :(得分:7)
尝试更改您的用户代理:
Nokogiri::HTML(open("https://www.ruby-toolbox.com/categories/by_name", 'User-Agent' => 'firefox'))
www.ruby-toolbox.com似乎不接受'ruby'作为代理人。
答案 1 :(得分:0)
这似乎是OpenURI issue。试试这个:
Nokogiri::HTML(open("https://www.ruby-toolbox.com/categories/by_name", 'User-Agent' => 'ruby'))
答案 2 :(得分:0)
如上所述,必须更改用户代理。但是,除此之外,您还必须禁用SSL证书验证,因为它也会引发错误。
require 'nokogiri'
require 'open-uri'
require 'openssl'
url = 'https://www.ruby-toolbox.com/categories/by_name'
content = open(url, ssl_verify_mode: OpenSSL::SSL::VERIFY_NONE, 'User-Agent' => 'opera')
doc = Nokogiri::HTML(content)
doc.xpath('//div[@id="teaser"]//h2/text()').to_s
# "All Categories by name"
答案 3 :(得分:0)
我花了大约1个小时的时间来尝试解决@IBAction func calculatePressed(_ sender: Any) {
let height = heightSlider.value
let weight = weightSlider.value
calculations.calculateBMI(height: height, weight: weight)
self.performSegue(withIdentifier: "GettingResults", sender: self)
}
的问题,包括修改403 forbidden
的{{1}}参数,调查代理等。
但是在整个过程中,我的代码都没有错,我被自动浏览的网站巧妙地更改了URL ,并且以前访问的URL被禁止了。
我希望这可以节省其他人的时间。