2014-03-03 107 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/

您可能需要重寫您通過網頁進行迭代的方式。