我建立使用機械化從網站抽取數據的腳本。該腳本應該點擊「讀傳記」鏈接,然後刮成員的傳記的下一個頁面上。未定義的方法「點擊」的零:NilClass(機械化)
這裏是在瑞克文件中的腳本:
require 'mechanize'
require 'date'
require 'json'
task :testing2 do
agent = Mechanize.new
page = agent.get("https://www.congress.gov/members")
page_links = page.links_with(href: %r{.*/member/\w+})
member_links = page_links[0...2]
members = member_links.map do |link|
member = link.click
name = member.search('title').text.split('|')[0]
institution = member.search('td~ td+ td').text.split(':')[0]
dob = member.search('.birthdate').text.strip[1..4]
# Get bio
bio_link = member.link_with(:text => 'Read biography').click
bio = bio_page.search('p').text.strip
{
name: name.strip,
institution: institution.strip,
dob: dob,
bio: bio
}
end
puts JSON.pretty_generate(members)
end
如果你不直接使用引入nokogiri那麼這不是一個問題,引入nokogiri。 –