gpt4 book ai didi

ruby mechanize 需要完整的类名

转载 作者:行者123 更新时间:2023-12-04 16:20:56 25 4
gpt4 key购买 nike

为什么你需要 Mechanize 的全名,因为:

#!/usr/bin/ruby -w

require 'rubygems'
require 'pp'
require 'yaml'
require "mechanize"


yml = YAML.load_file 'login.yml'
user = yml["user"]
pword = yml["pword"]

a = WWW::Mechanize.new { |agent|
agent.user_agent_alias = 'Mac Safari'
}

a.get('http://google.com/') do |page|
search_result = page.form_with(:name => 'f') do |search|
search.q = 'Hello world'
end.submit

search_result.links.each do |link|
puts link.text
end
end

当 Mechanize example不这样做吗?这是在 previous 之上询问的题。代码仅在阅读有关此确切主题的上一个问题并添加完整的类 (?) 名称后才起作用。我在 Java 中似乎有些相似,但只有在它不明确的时候才会这样。在这里,没有什么模棱两可的,只有一个 Mechanize 。

请原谅,实际之前的问题与上述链接完全矛盾。我引用的上一个问题是 here .重申一下,两个不同的问题,两个不同的答案。也许 API 或习语发生了变化。

最佳答案

你用的是什么版本的 Mechanize ?试试 gem list mechanize .

使用 Ruby 1.8.7-p357、1.9.2-p290 和 1.9.3-p0 以及 Mechanize 2.1,我能够实例化一个实例。例如:

1.8.7 :001 > require 'mechanize'
true
1.8.7 :002 > agent = Mechanize.new
#<Mechanize:0x101baacf0
[...]

和:
1.9.3p0 :001 > require 'mechanize'
true
1.9.3p0 :002 > agent = Mechanize.new
#<Mechanize:0x102988610
[...]

我怀疑您使用的是 Mac OS,因为您在 /usr/bin 访问 Ruby。 .默认情况下,Ruby 未安装在 Windows 或 Linux 上,通常不会在该路径上。

Apple 的 Ruby 版本不包括 Mechanize,因此您在某个时候添加了它。因为 Apple 没有安装它,所以更新应该是良性的,所以这样做:
sudo gem update mechanize

Apple 确实将 Ruby 用于 Mac OS 上的应用程序,因此您在更新其预安装的 gem 时必须注意这一点。

关于ruby mechanize 需要完整的类名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8980666/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com