我正在尝试创建一个基本的 ruby 刮板,它将从 html 源代码中抓取所有 8 个字母或更长的单词。然后它将这些保存在与单词的第一个字符相对应的文件中。看起来很简单吧?
re = /\w{8,}/
cre = /[a-z0-9]/
a = b.html #This grabs the html from the browser
matchx = a.scan(re)
matchx.each do |xx|
word = xx.to_s.downcase.chomp
fchar = word[0].chr
if (fchar.match(cre)) #Not sure if I need this
@pcount += 1
fname = @WordsFName+fchar #@WordsFName is a prefix
tmpF = File.open(fname,"a+")
#Check for duplicates, if not write to file
exists = File.readlines(fname).any? { |li| li[word] }
if (!exists)
tmpF.write(word+"\n")
print word
@wcount += 1
end
end
end
Ruby 成功抓取所有单词,获取第一个字符,并打开所有必要的文件,但无法写入。此外, print 方法打印所有单词,包括重复的单词,但检查 any? irb上的方法没有问题..