2012-03-10 7 views
0

I持っMechanizeの(agent.get)で受信されたページに次のHTMLコード: 解析用HTMLページが適切な配列を受信する

<div class="b-resumehistorylist-views"> 

<!-- first date start--> 

<div class="b-resumehistory-date">date1</div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time1</div> 
<a href="company_lynk1">company1</a></div> 


<!-- second date start --> 

<div class="b-resumehistory-date">date2</div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time2</div> 
<a href="company_lynk2">company2</a> 
</div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time3</div> 
<a href="company_lynk3">company3</a></div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time4</div> 
<a href="company_lynk4">company4</a></div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time5</div> 
<a href="company_lynk5">company5</a></div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time6</div> 
<a href="company_lynk6">company6</a></div> 

<div class="b-resumehistory-company"> 
<div class="b-resumehistory-time">time7</div> 
<a href="company_lynk7">company7</a></div> 

... 

</div> 
私はクラスでdivの内側に検索する必要が

=」 b - resumehistorylist-views "の各日付を表示します。 次に、2つの部門間のすべての部門を見つけ、各部門をこの特定の日付にリンクします。

各項目(divクラス= b-resumehistorylist-views)がdiv = b-resumehistorylist-viewsの内側にないという問題があります。

最終段階で、私は次の配列受信する必要があります:私は、テキスト()メソッドオプションで検索を使用する必要がありますが、私は解決策を見つけることができないことを知っている array = [ [date1, time1, company1, companylink1], [date2, time2, company2, companylink2], [date2, time3, company3, companylink3],[date2, time4, company4, companylink4] ]

を。 私のコードは、今すぐdivクラス= b-resumehistory-companyの間のすべての企業情報を解析できますが、正しい日付を見つける必要があります。ちょうどクラスの属性の一部が変更された

+0

マイコード: 'MYDATA = page.search(" //のdiv [する@クラス= 'B- resumehistory-company '] ")。マップ{| n | n.text} ' – jagga99

答えて

1

それは以前と同じものになり、:

doc = agent.get(someurl).parser 
doc.css('.b-resumehistory-company').map{|x| [x.at('./preceding-sibling::div[@class="b-resumehistory-date"][1]').text , x.at('.b-resumehistory-time').text, x.at('a').text, x.at('a')[:href]]} 
+0

ありがとうございました!それは働いている! =))) – jagga99

関連する問題