簡體   English   中英

使用Ruby刮擦ASP.NET站點

[英]Scraping ASP.NET site with Ruby

我想使用Ruby抓取這個ASP.NET站點的搜索結果,最好只使用Hpricot(我無法打開Firefox的實例): http ://www.ngosinfo.gov.pk/SearchResults.aspx?name =&infoa = 0

但是,我無法弄清楚如何瀏覽每一頁結果。 基本上,我需要模擬點擊這些鏈接:

<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$2','')" class="blue_11" id="ctl00_ContentPlaceHolder1_Pager1">2</a>
<a href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$Pager1$3','')" class="blue_11" id="ctl00_ContentPlaceHolder1_Pager1">3</a>

等等

我嘗試使用Net :: HTTP來處理帖子,但是雖然收到了正確的HTML,但沒有搜索結果(我可能沒有正確地做到這一點)。 此外,頁面的URL不包含任何指示頁面的參數,因此無法以此方式強制執行結果。

任何幫助將不勝感激。

使用mechanize-1.0.0可以實現以下工作:

 agent = Mechanize.new
 page = agent.get('http://127.0.0.1/some.aspx')

 form = page.form("aspnetForm")
 form.add_field!('__EVENTARGUMENT', 'Page$2')
 form.add_field!('__EVENTTARGET', 'ctl00$ContentPlaceHolder1$gvwSomeList')
 page = agent.submit(form) # this gets page 2

更好的檢查Mechanize。 關於屏幕抓取的一個很好的起點是railscasts.com關於機械化的一集。

如果你剛開始,你可能想看看Nokogiri 它比Hpricot(似乎已被放棄)更輕巧,更有文檔記錄

編輯:Jakub Hampl是正確的 - Mechanize是您正在尋找與網站交互的東西。 它與Nokogiri(解析HTML和XML)合作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM