机械化Traverse&解析

时间:2015-01-22 09:59:16

标签: mechanize-ruby

我试图浏览一下Mechanize找到的网页列表。在搜索工作正常后,我得到一个每页有10条记录的命中列表。底部导航系统带我到记录计数> 10.每页显示10个。所以53条记录= 6"组页面"我打电话给他们。

我想要做的是使用热门搜索结果页面执行以下操作:

  1. 抓住此列表中每条记录的html。我可以通过迭代来做到这一点。

  2. 按照' [下一步]'链接在底部并重复1和2直到没有更多2.基本上这将获得每个记录。

  3. 我在将第一页移到第二页时遇到问题。我抓住了前10条记录背后的html,但随后系统就开始了。不知道为什么。我以为我正在遍历群组页面,但它并没有超越第一个群组页面。

        counter = 1
        puts "Counter: #{counter}"
    
        while agent.page.links_with(:text => '[Next]').count == 1
            page = agent.page.link_with(:text => '[Next]').click
            puts "Counter/Next: #{counter} / #{agent.page.links_with(:text => '[Next]').count}" 
            agent.page.links_with(text: '[complete profile]').each do |link|
                a = link.click      # link.click goes to each company page 
                r = a.body.to_s 
                r = r.gsub(/^\s+\n/, "")
    
                # enter company into db
                class Company < ActiveRecord::Base
                end
    
                company = Company.new
                company.cdate = DateTime.now
                company.status = 'new'
                company.requestID = req_id
                company.html = r
                company.save    
            end
            counter += 1
        end
    

    任何见解都表示赞赏。我知道我很接近。

    干杯

1 个答案:

答案 0 :(得分:0)

解决方案:移动页面后面的点击方法:

page = agent.click(page.link_with(:text => "[Next]"))