否则,没有救援是没有用的,并且期望keyword_end

时间:2018-07-30 22:45:21

标签: ruby loops

此代码在我的ruby控制台中给了我这些错误:

1)警告:否则如果不进行救援是没有用的

2)语法错误,意外的输入结束,预期为keyword_end

为什么同时出现这两个错误?

require 'nokogiri'
require 'httparty'
require 'byebug'
require 'awesome_print'
require 'watir'

def input #takes user input and grabs the url for that particular search

puts "1) Enter the job title that you want to search for \n"
j_input = gets.chomp
job = j_input.split(/ /).join("+")
puts "================================= \n"

puts "1/2)Do you want to input city-and-state(1) or zipcode(2)? \n"
choice = gets.chomp

   if choice == "1"

    puts "2) Enter the city that you want to search for \n"
    city_input = gets.chomp
    city = city_input.split(/ /).join("+")
    puts "================================= \n"

    puts "3) Enter the state that you want to search for \n"
    state_input = gets.chomp
    state = "+" + state_input

    puts target_url = "https://www.indeed.com/resumes/?q=#{job}&l=#{city}%2C#{state}&cb=jt"


  elsif choice == "2"

    puts "Enter the zipcode that you want to search for \n"
    zipcode = gets.chomp

    puts target_url = "https://www.indeed.com/resumes?q=#{job}&l=#{zipcode}&cb=jt"

  else
    puts "error"
 end


unparsed_page = HTTParty.get(target_url)
parsed_page = Nokogiri::HTML(unparsed_page)
resume_listing = parsed_page.css('div.sre-entry')
per_page = resume_listing.count
resumes = Array.new
counter = 0
result_count = parsed_page.css('div#result_count').text.split(' ')[0].to_f
page_count = (result_count.to_f / per_page.to_f ).ceil
current_count = 0
byebug

if counter <= 0
    unparsed_page = HTTParty.get(target_url)
    parsed_page = Nokogiri::HTML(unparsed_page)
    resume_listing = parsed_page.css('div.sre-entry')
    per_page = resume_listing.count
    pagination_resume_listing.each do |resume_listing|

    #resume_info = {

    #   title:
    #   link:
    #   skills:
    #   education:
    #}
    #resumes << resume_info

puts "Added #{resume_info[:title]}"

else

   while current_count <= page_count * per_page
    pagination_url = "https://www.indeed.com/resumes?q=#{job}&l=#{zipcode}&co=US&cb=jt&start=#{current_count}"
    unparsed_pagination_page = HTTParty.get(pagination_url)
    pagination_parsed_page = Nokogiri::HTML(unparsed_pagination_page)
    pagination_resume_listing = pagination_parsed_page.css('div.sre-entry')
    pagination_resume_listing.each do |resume_listing|

    #resume_info = {

    #   title:
    #   link:
    #   skills:
    #   education:
    #}
    #resumes << resume_info

    puts "Added #{resume_info[:title]}"
    current_count += 50
 end

end
end
end
end

如果不告诉我期望代码末尾有多余的内容,它将不允许我修复其他没有救援问题的内容。当然,当我把它放在尽头时,它什么也没有说,它想要另一个目的

1 个答案:

答案 0 :(得分:1)

我要说的是,您的代码格式很糟糕,但首先必须完全格式化才能达到目的。格式化后,答案很明显,您将end放错了位置。

puts "Added #{resume_info[:title]}"
 # Should be and end here for the "do" block above
else

这里应该是:

require 'nokogiri'
require 'httparty'
require 'byebug'
require 'awesome_print'
require 'watir'

def input #takes user input and grabs the url for that particular search

  puts "1) Enter the job title that you want to search for \n"
  j_input = gets.chomp
  job = j_input.split(/ /).join("+")
  puts "================================= \n"

  puts "1/2)Do you want to input city-and-state(1) or zipcode(2)? \n"
  choice = gets.chomp

  if choice == "1"

    puts "2) Enter the city that you want to search for \n"
    city_input = gets.chomp
    city = city_input.split(/ /).join("+")
    puts "================================= \n"

    puts "3) Enter the state that you want to search for \n"
    state_input = gets.chomp
    state = "+" + state_input

    puts target_url = "https://www.indeed.com/resumes/?q=#{job}&l=#{city}%2C#{state}&cb=jt"


  elsif choice == "2"

    puts "Enter the zipcode that you want to search for \n"
    zipcode = gets.chomp

    puts target_url = "https://www.indeed.com/resumes?q=#{job}&l=#{zipcode}&cb=jt"

  else
    puts "error"
  end


  unparsed_page = HTTParty.get(target_url)
  parsed_page = Nokogiri::HTML(unparsed_page)
  resume_listing = parsed_page.css('div.sre-entry')
  per_page = resume_listing.count
  resumes = Array.new
  counter = 0
  result_count = parsed_page.css('div#result_count').text.split(' ')[0].to_f
  page_count = (result_count.to_f / per_page.to_f ).ceil
  current_count = 0
  byebug

  if counter <= 0
    unparsed_page = HTTParty.get(target_url)
    parsed_page = Nokogiri::HTML(unparsed_page)
    resume_listing = parsed_page.css('div.sre-entry')
    per_page = resume_listing.count
    pagination_resume_listing.each do |resume_listing|

      #resume_info = {

      #   title:
      #   link:
      #   skills:
      #   education:
      #}
      #resumes << resume_info

      puts "Added #{resume_info[:title]}"

    end

  else

    while current_count <= page_count * per_page
      pagination_url = "https://www.indeed.com/resumes?q=#{job}&l=#{zipcode}&co=US&cb=jt&start=#{current_count}"
      unparsed_pagination_page = HTTParty.get(pagination_url)
      pagination_parsed_page = Nokogiri::HTML(unparsed_pagination_page)
      pagination_resume_listing = pagination_parsed_page.css('div.sre-entry')
      pagination_resume_listing.each do |resume_listing|

        #resume_info = {

        #   title:
        #   link:
        #   skills:
        #   education:
        #}
        #resumes << resume_info

        puts "Added #{resume_info[:title]}"
        current_count += 50
      end
    end
  end
end

这里的经验是总是格式化代码,为了大家的缘故,大部分都是您自己的。没有理由不格式化,否则将导致难以找到的此类琐碎问题。

注意 我没有测试或运行它,只是对其进行了格式化,这使得不匹配的end显而易见。