使用机械化刮取/提取数据

时间:2014-01-01 19:31:54

标签: ruby mechanize

使用Mechanize,我想在本网站上搜索信息=> http://www.africanbookscollective.com

这是我想收集的信息:

  • “虚构”类别下列出的所有图书

在此类别下,我想:

  1. 作者姓名
  2. 书名
  3. isbn number
  4. 出版商
  5. 国家
  6. 我发现这个url => http://www.africanbookscollective.com/browse/african-literature/fiction 给了我想要的信息。

    这是我目前的代码:

    require 'awesome_print'
    require 'rubygems'
    require 'mechanize'
    
    agent = Mechanize.new
    page = agent.get('http://www.africanbookscollective.com/browse/african-literature/fiction')
    a = page.links.each do |link|
      puts link.text
    end
    
    ap a
    

    这是我第一次使用机械化,因此我不确定它与Nokogiri的区别。我在这个特殊情况下使用它的主要原因是因为我需要在38页(书籍标记小说的完整列表)中提取信息。

    的问题:

    1. 我从机械化中获得了非常长的输出,包括我不需要的链接。

    2. 我需要的信息不是在div类中 - 它是在一个dl类中我已经尝试使用谷歌搜索如何选择dl类但到目前为止还没有任何运气。

    3. 每次我执行正则表达式操作以删除我没有战争的链接时,我得到一个空数组

    4. 有人,有人,请帮我想一个解决这个问题的新方法吗?我真的很感激反馈。

      PS:这是一张可能会让人眼前一亮的图像

      enter image description here

1 个答案:

答案 0 :(得分:0)

您可以使用scrape4me.com获取项目中进一步处理的原始输出(机械化)不知道机械化但也许这可以帮助,祝你好运