2014-03-03 82 views
0

我试图从使用机械化的元素(.jobtitle a)中提取链接。我试图在下面的链接变量中做到这一点。任何人都知道吗?在Ruby中使用机械化提取链接

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 

回答

0

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

从机械化文档:

搜索()

搜索使用引入nokogiri的搜索页面的路径。路径可以是XPath或CSS,并且可以添加可选的名称空间散列。

查看Nokogiri :: XML :: Node#搜索更多细节。

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

Getting attribute using XPath

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

您可能需要重写您通过网页进行迭代的方式。