我正在使用機械化,紅寶石和紅寶石&軌道刮這website。 我想單擊「Trabajo En Sala」選項卡,以便我可以在該選項卡中抓取任何信息。點擊javascript標籤使用機械化和紅寶石
我知道mechanize不支持javascript,但是我讀到here這個人是怎麼用機械來處理javascript響應的。有一件事我注意到,我或多或少有同樣的問題,可能像他一樣使用相同的解決方案。一個原因是:
1)的標籤HREF使用相同__doPostBack()函數
<a id="ctl00_mainPlaceHolder_btnSala" href="javascript:__doPostBack('ctl00$mainPlaceHolder$btnSala','')">Trabajo en sala</a>
2)當我看的源代碼,我可以清楚地看到與javascript __doPostBack函數相關的表單:
所以我讀過那個人的帖子,並試圖將他的解決方案修改成我的。這是我得到迄今:
require 'mechanize'
task :scraper_test => [:environment] do
agent = Mechanize.new
page = agent.get("https://www.camara.cl/camara/diputado_detalle.aspx?prmid=968")
form = page.form("aspnetForm.add_field!('__EVENTTARGET','')")
form.add_field!('ctl00$mainPlaceHolder$btnSala','')
tab = agent.submit(form)
end
P/S:用耙內Rails應用程序即時運行此。
但是當我運行它,我得到這個錯誤:
NoMethodError: undefined method `add_field!' for nil:NilClass
所以,你能幫我找出這樣做的正確方法?謝謝!
哇謝謝人..它對我很好! :) –
很高興聽到它:) – MilesStanfield