我抓取的数据是空的(Rails 和机械化)

My scraped data is empty (Rails and mechanize)

我正在编写一个简单的脚本来从这个 link 中抓取数据:https://www.congress.gov/members

该脚本将遍历每个 link 成员,跟随 link,并从 link 中抓取数据。此脚本是 Rails 应用程序 Ruby 上的 .rake 文件。

脚本如下:

require 'mechanize'
require 'date'
require 'json'
require 'openssl'

module OpenSSL
    module SSL
    remove_const :VERIFY_PEER
    end
end

OpenSSL::SSL::VERIFY_PEER = OpenSSL::SSL::VERIFY_NONE

I_KNOW_THAT_OPENSSL_VERIFY_PEER_EQUALS_VERIFY_NONE_IS_WRONG = nil


task :testing do

    agent = Mechanize.new
    page = agent.get("https://www.congress.gov/members")

    page_links = page.links_with(href: %r{^/member/\w+})

    product_links = page_links[0...2]

    products = product_links.map do |link|

      product = link.click

      state = product.search('td:nth-child(1)').text
      website = product.search('.member_website+ td').text

      {
        state: state,
        website: website
      }

    end

    puts JSON.pretty_generate(products)
end

以下是我运行这个script/file:

时的输出

您的正则表达式与链接不匹配。 试试这个:page_links = page.links_with(href: %r{.*/member/\w+})

您可以在此处验证正则表达式:http://rubular.com/