使用Ruby中的Mechanize提取链接

时间:2014-03-03 06:35:45

标签: ruby hyperlink mechanize

我试图使用mechanize从元素(.jobtitle a)中提取链接。我试着在下面的链接变量中这样做。谁知道怎么做?

require 'rubygems'
require 'mechanize'

agent = Mechanize.new
page = agent.get('http://id.indeed.com/')
indeed_form = page.form('jobsearch')
indeed_form.q = ''
indeed_form.l = 'Indonesia'
page = agent.submit(indeed_form)
page.search(".row , .jobtitle a").each do |job|
    job_title = job.search(".jobtitle a").map(&:text).map(&:strip)
    company = job.search(".company span").map(&:text).map(&:strip)
    date = job.search(".date").map(&:text).map(&:strip)
    location = job.search(".location span").map(&:text).map(&:strip)
    summary = job.search(".summary").map(&:text).map(&:strip)
    link = job.search(".jobtitle a").map(&:text).map(&:strip)
end

1 个答案:

答案 0 :(得分:0)

我认为你不能用css路径选择属性。

从机械化文档:

  

搜索()

     

使用Nokogiri的搜索在页面中搜索路径。路径可以是XPath或CSS,并且可以附加可选的Hash of名称空间。

     

有关详细信息,请参阅Nokogiri :: XML :: Node#search。

您应该检查XPath。参见例如:

Getting attribute using XPath

http://www.w3schools.com/xpath/

您可能需要重写遍历页面的方式。