首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >文件系统爬虫-迭代错误

文件系统爬虫-迭代错误
EN

Stack Overflow用户
提问于 2012-12-27 02:07:00
回答 2查看 277关注 0票数 2

我目前正在使用以下代码构建一个文件系统爬虫:

代码语言:javascript
复制
require 'find'
require 'spreadsheet'
Spreadsheet.client_encoding = 'UTF-8'

count = 0

Find.find('/Users/Anconia/crawler/') do |file|           
  if file =~ /\b.xls$/                                            # check if filename ends in desired format
    contents =  Spreadsheet.open(file).worksheets
    contents.each do |row|
      if row =~ /regex/
        puts file
        count += 1
      end
    end
  end
end

puts "#{count} files were found"

我收到了以下输出:0 files were found

正则表达式已经过测试,而且是正确的--我目前在另一个可以正常工作的爬虫中使用它。

row.inspect的输出是

#<Spreadsheet::Excel::Worksheet:0x003ffa5d418538 @row_addresses= @default_format= @selected= @dimensions= @name=Sheet1 @workbook=#<Spreadsheet::Excel::Workbook:0x007ff4bb147140> @rows=[] @columns=[] @links={} @merged_cells=[] @protected=false @password_hash=0 @changes={} @offsets={} @reader=#<Spreadsheet::Excel::Reader:0x007ff4bb1f3b98> @ole=#<Ole::Storage::RangesIOMigrateable:0x007ff4bb126fa8> @offset=15341 @guts={} @rows[3]> -当然没有什么需要迭代的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-12-27 07:30:36

票数 0
EN

Stack Overflow用户

发布于 2012-12-27 07:17:37

试试这个:

代码语言:javascript
复制
content = Spreadsheet.open(file)
sheet = content.worksheet 0 
sheet.each do |row|
...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14044357

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档